缺少标识符,即使它在上面定义了一行?

时间:2013-05-10 15:52:17

标签: java unicode syntax

让我们看看这个简单的Java程序:

class A {
    public static void main(String[] args) {
        int а = 2;
        System.out.println("a " + a);
    }
}

它创建了初始化为a的变量2,并将其打印出来。但是,它没有编译:

    $ javac A.java && java A
    A.java:4: cannot find symbol
    symbol  : variable a
    location: class A
            System.out.println("a " + a);
                                      ^
    1 error

为什么?

2 个答案:

答案 0 :(得分:10)

你有两种不同类型的a。如果你将第一个重新键入为ASCII a,那就没关系了。

第一个a是U + 0430,“Cyrrilic小写字母a”。 (参见relevant Unicode chart。)

我个人会尝试尽可能将Java中的所有标识符保存为ASCII字符。

(这段代码甚至从哪里开始?)

答案 1 :(得分:2)

我不知道那是什么,但在int а = 2;行,那件事肯定不是a,而是.k.a ASCII 97。