0

我有一行代码本质上是这样的

NameOfAClassOnTheClasspath.

编译器接受这一点而不会出现错误甚至警告。我已经在 eclipse 和命令行中尝试过这个。

编译器(javac 1.6)到底可以认为这意味着什么,为什么不抱怨?

4

2 回答 2

8

由于空白被忽略,类似于

SomeClass.

staticMethod();

是一种完全合法的调用方式

SomeClass.staticMethod();

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

例如另一个接口的内部接口:

Map.

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

当然,这是一种非常糟糕的编码风格,除非您要中断的行太长而无法在屏幕上显示,在这种情况下,您应该缩进该行的其余部分。

于 2012-04-21T15:53:21.340 回答
0

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

如果您希望 ClassLoader 加载类,因为您在静态初始化中做了一些事情,那么您应该考虑使用 Class.forName("YourClass");

于 2012-04-21T16:03:47.917 回答