注释代码在Java中出现编译错误?

时间:2015-02-14 11:42:22

标签: java compiler-errors

您好我正在创建简单的程序,并在注释代码中得到了看不见的编译错误。我的代码如下:

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中意味着什么?

2 个答案:

答案 0 :(得分:7)

\u000d是一个Unicode字符,代表CR特殊字符。即使编译器转换源代码之前,此字符也会被预处理并导致源代码无效。所以我想在预处理时,注释行看起来像:

//Static_Method_Call.character=new Character('
 ');

因此编译错误。您可以使用\r添加回车。

答案 1 :(得分:1)

\ u000d是换行符,因此下一行以'开头。这是未公开的,它是抱怨的。这在A unicode newline character(\u000d) in Java

中解释