Why is an anonymous inner class containing nothing generated from this code?
Posted
by Andrew Westberg
on Stack Overflow
See other posts from Stack Overflow
or by Andrew Westberg
Published on 2010-05-21T15:00:37Z
Indexed on
2010/05/21
15:00 UTC
Read the original article
Hit count: 229
When run through javac on the cmd line Sun JVM 1.6.0_20, this code produces 6 .class files
OuterClass.class
OuterClass$1.class
OuterClass$InnerClass.class
OuterClass$InnerClass2.class
OuterClass$InnerClass$InnerInnerClass.class
OuterClass$PrivateInnerClass.class
When run through JDT in eclipse, it produces only 5 classes.
OuterClass.class
OuterClass$1.class
OuterClass$InnerClass.class
OuterClass$InnerClass2.class
OuterClass$InnerClass$InnerInnerClass.class
OuterClass$PrivateInnerClass.class
When decompiled, OuterClass$1.class contains nothing. Where is this extra class coming from and why is it created?
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();
}
}
© Stack Overflow or respective owner