Java字符串声明IntelliJ IDEA

时间:2016-09-23 09:40:21

标签: java string intellij-idea variable-declaration

尝试在Console应用程序的main方法中声明Java中的字符串。

String s = "this is some text";

我得到一个红色下划线,说'class'或'interface'。

如果我将代码更改为

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

一切正常,或至少代码编译。使用JDK 1.8并最近将IDE升级到版本2016.2.4。

这仅在声明新String时发生,所有其他类型的声明和初始化都在不声明新实例的情况下工作,即

int i = 0;

任何人都知道为什么第一个声明不起作用?

尝试写入控制台时会出现类似的行为,

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

'text'一词用红色下划线表示'class'或'interface'。

编辑:按要求提供全班

package Sandbox;

public class Main {

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

然而

package Sandbox;

public class Main {

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

请参阅IDE中实际代码的下方截图。欢迎评论。

1 个答案:

答案 0 :(得分:2)

看起来像IntelliJ中的语言注入问题。 https://www.jetbrains.com/help/idea/2016.2/using-language-injections.html

禁用语言注入。这应该可以解决你的问题。

此处描述了println方法和字符串的类似问题,并通过从字符串注入取消注册println来解决:https://intellij-support.jetbrains.com/hc/en-us/community/posts/206836685-System-out-println-hello-analyze-error