Il problema può essere causa di non avere un caricatore di classe in grado di risolvere il nome (anche se è in grado di risolvere il sottotipo). Questo sembra contraddittorio, ma ho avuto il messaggio di errore quando stavo costruendo una configurazione e usando ClasspathHelper.forClassLoader
su un URLClassloader istanziato dall'applicazione per capire cosa scansionare sul classpath, ma non passare in URLClassLoader nella configurazione di Reflections in modo che potesse creare un'istanza cose correttamente.
quindi si consiglia di provare qualcosa sulla falsariga di quanto segue:
URLClassLoader urlcl = new URLClassLoader(urls);
Reflections reflections = new Reflections(
new ConfigurationBuilder().setUrls(
ClasspathHelper.forClassLoader(urlcl)
).addClassLoader(urlcl)
);
dove urls
è un array di URL da vasi contenenti le classi che si desidera caricare. Stavo ricevendo lo stesso errore come te se non avessi la chiamata finale addClassLoader(...)
allo ConfigurationBuilder
.
Se ciò non funziona o non è applicabile, potrebbe essere utile impostare un punto di interruzione in ReflectionsUtil.forName(String typeName, ClassLoader... classLoaders))
per vedere cosa sta succedendo.
è necessario fornire un altro codice (come la classe ExtendsFoo), forse alcune informazioni sulla struttura del pacchetto e forse un po 'più della traccia dello stack dell'eccezione. –
Reflections è una classe dell'API Java? Dacci più informazioni .. – Satya
Sto usando questo come indicato dal mio tag: https://code.google.com/p/reflections/ – Kezz101