2016-09-23 43 views
-2

嘗試在Console應用程序的主要方法內聲明Java中的字符串。Java字符串聲明IntelliJ IDEA

String s = "this is some text"; 

我得到一個紅色下劃線,表示'class'或'interface'是預期的。

如果我改變代碼來讀取

String s = new String("this is some text"); 

一切正常,或者至少是代碼編譯。使用JDK 1.8並且最近已將IDE升級到版本2016.2.4。聲明新的字符串時,所有其它類型聲明和初始化工作,而無需聲明一個新實例,

這隻發生即

INT I = 0;

任何人都知道爲什麼第一個聲明不起作用?試圖寫入控制檯時

類似的行爲表現,

System.out.println("this is some text"); 

字「文字」是紅色下劃線說「階級」或「接口」的預期。

編輯:整個班級的要求

package Sandbox; 

public class Main { 

    public static void main(String[] args) { 
     System.out.println("this fails"); 
    } 
} 

但是下面的IDE中的實際代碼

package Sandbox; 

public class Main { 

    public static void main(String[] args) { 
     System.out.println(new String("this works")); 
    } 
} 

見截圖。評論歡迎。

+3

顯示我們整個班級/代碼,你這樣做是 – TheLostMind

+0

它可能已致因在您的程序結構中存在缺陷。也許你不匹配大括號。 – progyammer

+0

您是否導入了'com.sun.org.apache.xpath.internal.operations.String'? –

回答

2

看起來像IntelliJ中的語言注入問題。 https://www.jetbrains.com/help/idea/2016.2/using-language-injections.html

禁用語言注入。這應該解決你的問題。

與println方法和字符串的similiar問題在這裏描述,並已被註銷的println從字符串注射解決:https://intellij-support.jetbrains.com/hc/en-us/community/posts/206836685-System-out-println-hello-analyze-error

+0

這看起來可能是一個實際的解決方案,謝謝。這不是我在IDEA中的第一個項目,但我很好奇是什麼改變了。這不是IDE升級,JDK也沒有改變。謝謝你。 –

+0

這是println函數。我取消了註冊並沒有問題。接受爲答案,謝謝。我很想知道這些版本之間的變化,但無論如何,您已經修復了這些問題,而這正是我關心的。 –