Muestra de código:¿Es posible crear una instancia de clase anidada utilizando Java Reflection?
public class Foo
{
public class Bar
{
public void printMesg(String body)
{
System.out.println(body);
}
}
public static void main(String[] args)
{
// Creating new instance of 'Bar' using Class.forname - how?
}
}
¿Es posible crear una nueva instancia de la clase Bar dar su nombre? Traté de usar:
Class c = Class.forName("Foo$Bar")
se encuentra la clase, pero cuando se utiliza c.newInstance() arroja InstantiationException.
nitpick:.. Eso no es una clase anidada, es un elemento interno clase. Las clases anidadas son estáticas y se instancian fácilmente con el mecanismo que acaba de probar. – skaffman
¿Cuáles fueron los detalles de 'InstantiationException'? –
Las clases internas son un tipo de clase anidada (si recuerdo la terminología JLS correctamente). –