您好我正在创建简单的程序,并在注释代码中得到了看不见的编译错误。我的代码如下:
public class Static_Method_Call
{
public static Character character=getMe();
public static void main(String[] args)
{
System.out.println("Inside main() 1 : "+character);
//Static_Method_Call.character=new Character('\u000d');
//System.out.println("Inside main() 2 : "+character);
}
static
{
System.out.println("Inside static block : "+character);
Static_Method_Call.character=new Character('\u003d');
}
public static Character getMe()
{
System.out.println("Inside getMe() : "+character);
return new Character('\u002d');
}
}
错误如下:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Invalid character constant
这个错误在Java中意味着什么?
答案 0 :(得分:7)
\u000d
是一个Unicode字符,代表CR
特殊字符。即使在编译器转换源代码之前,此字符也会被预处理并导致源代码无效。所以我想在预处理时,注释行看起来像:
//Static_Method_Call.character=new Character('
');
因此编译错误。您可以使用\r
添加回车。
答案 1 :(得分:1)
\ u000d是换行符,因此下一行以'开头。这是未公开的,它是抱怨的。这在A unicode newline character(\u000d) in Java
中解释