Domanda

Ho una classe interna anonima all'interno di un'altra classe (SomeClass).

Sia SomeClass.class.getClasses() e SomeClass.class.getDeclaredClasses() ritorno Array vuoto.

non ho potuto trovare alcuni suggerimenti su questo in Class' Javadocs.

classi interne anonime possono essere recuperati utilizzando la riflessione in qualche modo?

Che altro sono notevoli differenze tra le classi interne anonime e delle normali classi interne?

È stato utile?

Soluzione

Se si sta usando la riflessione, è probabilmente una pessima idea. Lasciando a parte questo, io credo che si possa classi interne aggiuntive in fase di runtime, quindi non ha senso elencare le classi che potrebbero non essere stati ancora pensato. Listing classi attualmente caricati sarebbe, credo, bisogno di andare attraverso agenti Java o simili.

classi interne anonime hanno fatto i nomi, un metodo di inclusione e campi sintetici aggiuntivi per la copia di variabili esterne locali che sono stati copiati. Una classe è praticamente la stessa come un altro in fase di esecuzione. Ricordate che 1.1 ha introdotto le classi interne, ma i file di classe hanno appena cambiato dal 1.0.

Altri suggerimenti

Si potrebbe provare una ricerca di forza bruta di classe $ 1 ... Class $ n fino a quando non è possibile trovare qualsiasi altro ancora.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top