出于好奇,为什么有时在编译后为类生成多个Java .class文件?例如,我的应用程序有六个类.对于一个类,总共生成了10个.class文件,从MyClass#1开始到MyClass#10.
Sim*_*son 27
例如:
class Foo {
class Bar { }
static class Baz { }
void run() {
Helper t = new Helper() {
int helpMethod() {
return 2;
}
};
}
}
Run Code Online (Sandbox Code Playgroud)
这将产生类文件Foo.class
,Foo$Bar.class
,Foo$Baz.class
和Foo$1.class
(用于实施Helper
接口)
如果,您可以从单个源文件中获得更多.class文件
该类包含内部类或静态内部类.内部类可以嵌套.他们的名字是<outer class name>$<inner class name>
.
内部接口始终是静态的.
匿名内部类(实际上是没有名称的普通内部类)
主类之前和之后的包访问接口和类.您可以在单个Java源文件中拥有任意数量的包访问类和接口.通常只有类使用的小辅助对象才会被放入同一个文件中.