I have a public class with a private class inside it:
public class A {
private class B
{
}
private final B b = new B();
public static void main(String[] args) {
Class<?> bClass = A.class.getDeclaredClasses()[0];
Constructor<?>[] declaredConstructors = bClass.getDeclaredConstructors();
System.out.println(declaredConstructors.length); //result = 2
}
}
The problem is, that the declared constructors in class B equals two.
Although in other cases, the number of constructors in class B equals one:
public class A {
private class B
{
public B()
{
}
}
private final B b = new B();
public static void main(String[] args) {
Class<?> bClass = A.class.getDeclaredClasses()[0];
Constructor<?>[] declaredConstructors = bClass.getDeclaredConstructors();
System.out.println(declaredConstructors.length); //result = 1
}
}
and
public class A {
private class B
{
}
public static void main(String[] args) {
Class<?> bClass = A.class.getDeclaredClasses()[0];
Constructor<?>[] declaredConstructors = bClass.getDeclaredConstructors();
System.out.println(declaredConstructors.length); //result = 1
}
}
The question is why in the first case 2 constructors? Thanks!