为什么java编译器不抱怨这个:

时间:2012-04-21 15:49:49

标签: java compiler-construction javac

我有一行基本上是

的代码
NameOfAClassOnTheClasspath.

编译器接受此操作时没有错误甚至是警告。我在eclipse和命令行上尝试过这个。

编译器(javac 1.6)甚至认为这意味着什么,为什么不抱怨呢?

2 个答案:

答案 0 :(得分:8)

由于忽略了空格,比如

SomeClass.

staticMethod();

是一种完全合法的方式来致电

SomeClass.staticMethod();

(你可以用几乎任何其他类的静态成员替换该方法)

e.g。另一个接口的内部接口:

Map.

Entry<Integer,Integer> x; // Declares a Map.Entry<Integer,Integer>

当然这是非常可怕的编码风格,除非你打破太长而无法放在屏幕上的线条,在这种情况下你应该缩进其余部分。

答案 1 :(得分:0)

考虑到DOT是一个二元运算符,所以需要一个类和一个方法。

如果您希望ClassLoader加载类,因为您在静态初始化中执行了某些操作,那么您应该考虑使用Class.forName(“YourClass”);