【发布时间】:2014-03-03 03:52:55
【问题描述】:
我编译了这段代码,然后,TestInner$1.class 出现了。
我知道~~~$1.class 表示该文件具有“匿名类。”
但是我不明白为什么要制作这个类文件。我想知道原因。
这里是代码。
public class TestInner {
private static class Inner { }
public static void main(String[] args){
new Inner();
}
}
我尝试了另一个版本删除了“private”标识符,如下所示。
public class TestInner {
static class Inner { }
public static void main(String[] args){
new Inner();
}
}
我原以为这段代码也会生成TestInner$1.class 文件。
但是它没有创建文件。
另外,下面的代码,添加了Constructor,也没有生成TestInner$1.class。
public class TestInner {
private static class Inner {
Inner(){ }
}
public static void main(String[] args){
new Inner();
}
}
我不知道,有谁能帮帮我吗?
编辑:
我发现了同样的问题并解决了。感谢您的帮助。
Why is an anonymous inner class containing nothing generated from this code?
【问题讨论】:
-
您的示例中没有任何匿名类。
-
您的所有样本都应该创建一个
TestInner$Inner.class。什么都不应该生成TestInner$1.class。可能是之前的实验遗留下来的。 -
你可能想通过Anonymous Classes tutorial工作。
-
我用谷歌搜索,然后得到信息“如果您使用 Eclipse,则不会创建此类文件。”
-
@Jason C 谢谢!我也再研究一下。
标签: java inner-classes