Instanciar via reflection classe interna

Alguém saberia como instanciar uma classe interna via reflection?

		// Sem problemas aqui.
		final Class classe = Class
				.forName("br.com.empresa.ClasseExterna$ClasseInterna");
		
		/*
		 * Aqui ele me lança uma Exception in thread "main"
		 * java.lang.InstantiationException:
		 * br.com.empresa.ClasseExterna$ClasseInterna at
		 * java.lang.Class.newInstance0(Unknown Source) at
		 * java.lang.Class.newInstance(Unknown Source)
		 */
		final ClasseInterna teste01 = (ClasseInterna) classe.newInstance();

Coloque o código da sua classe ClasseExterna e ClasseInterna.

Jà adianto que isso pode ocorrer:

  • Se a classe interna não estiver como static

  • Se ocorrer alguma das condições descritas no javadoc para essa exception (tem muita coisa pra repetir aqui, dá uma lida)

Pgioseffi,
Dá uma olhada neste link:
http://www.jroller.com/tomdz/entry/reflection_inner_classes
Fiz um teste para confirmar e aparentemente tudo certo:

[code]public class Externa {
public static void main(String[] args) {

	try {
		Externa extObj = new Externa();
		Constructor constructor = Externa.Interna.class.getConstructor(new Class[]{Externa.class});
		Externa.Interna intObj    = (Externa.Interna)constructor.newInstance(new Object[] {extObj});
	} catch (Exception e) {
		// ...
	}
}

public class Interna {
	// ...	
}

}[/code]