【发布时间】:2013-07-24 22:09:28
【问题描述】:
这在 Eclipse JDT 中编译得很好,但在 1.6.30 或 1.7.25 上编译得不好:
package doh;
import static doh.Wtf.InnerClass.innerclassMethod;
import java.io.Serializable;
public class Wtf {
static class InnerClass implements Serializable {
public static void innerclassMethod() {
}
}
}
使用 javac 我得到以下编译错误:
error: cannot find symbol
static class InnerClass implements Serializable {
symbol: class Serializable
location: class Wtf
注释掉多余的静态导入使代码编译。重新排序导入语句也是如此。
【问题讨论】:
-
很好奇,但是将方法导入到实现方法的文件的目的是什么?
-
@erencan 编译错误,什么堆栈跟踪? :S
-
可能与this similar bug有关。
-
在 1.7.0_21 中编译良好,包括 Eclipse 和 javac,没有多余的静态导入。
-
@kiheru 如果没有静态导入,您将不得不调用该方法:
InnerClass.innerClassMethod();。使用静态导入,您可以只使用innerClassMethod();。与任何其他静态导入语句的原因相同。
标签: java