package com.test;
public class OuterClass {
public class InnerClass {
public class InnerInnerClass {
}
}
public class InnerClass2 {
}
//this class should not exist in OuterClass after dummifying
private class PrivateInnerClass {
private String getString() {
return "hello PrivateInnerClass";
}
}
public String getStringFromPrivateInner() {
return new PrivateInnerClass().getString();
}
}
当javac
在命令行上运行时Sun JVM 1.6.0_20
,此代码会生成 6 个 .class 文件:
OuterClass.class
OuterClass $1.class
OuterClass $InnerClass.class OuterClass$InnerClass2.class OuterClass$InnerClass$InnerInnerClass.class OuterClass $PrivateInnerClass.class
在eclipse中通过JDT运行时,它只产生5个类。
外部类.class
OuterClass$1.class
OuterClass
$InnerClass.class
OuterClass$InnerClass2.class OuterClass$InnerClass$InnerInnerClass.class OuterClass
$PrivateInnerClass.class
反编译时,OuterClass$1.class
不包含任何内容。这个额外的类是从哪里来的,为什么要创建它?