注释代码在 Java 中给出编译错误?
Commented code gives compilation error in Java?
您好,我正在创建简单的程序,但在评论中遇到了看不见的编译错误 code.My 代码如下:
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 中意味着什么?
\u000d
是一个 Unicode 字符,代表 CR
特殊字符。即使在编译器对源码进行改造之前,这个字符也被预处理导致源码无效。所以我猜在预处理时,注释行看起来像:
//Static_Method_Call.character=new Character('
');
因此编译器错误。可以用\r
加回车return.
\u000d 是一个换行符,所以下一行以 ' 开头,这是未关闭的,这就是它所抱怨的。这在此处解释 A unicode newline character(\u000d) in Java
您好,我正在创建简单的程序,但在评论中遇到了看不见的编译错误 code.My 代码如下:
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 中意味着什么?
\u000d
是一个 Unicode 字符,代表 CR
特殊字符。即使在编译器对源码进行改造之前,这个字符也被预处理导致源码无效。所以我猜在预处理时,注释行看起来像:
//Static_Method_Call.character=new Character('
');
因此编译器错误。可以用\r
加回车return.
\u000d 是一个换行符,所以下一行以 ' 开头,这是未关闭的,这就是它所抱怨的。这在此处解释 A unicode newline character(\u000d) in Java