Sto scrivendo una funzionalità in cui sarebbe utile ottenere le classi all'interno di un determinato pacchetto del mio programma. Inoltre, voglio solo le classi che sottoclasse una certa classe.Ottenere i nomi di tutte le classi Java dichiarate in un pacchetto
Ho bisogno delle classi per richiamare metodi statici.
C'è un modo automatico per farlo? Se è così, è lento?
Nel caso in cui non sono stato chiaro, quello che voglio è qualcosa di simile:
ArrayList<Class<? extends MySuperClass>> classes = ;
classes.add(MyClass.class);
classes.add(MyClass2.class);
Invece di dover chiamare aggiungere per ogni classe, vorrei ottenere automaticamente tale elenco di classe.
Il numero di classi è piccolo, quindi non mi dispiacerebbe dichiararle manualmente se il trucco automatico sarebbe lento - questa app è per una piattaforma mobile.
In entrambi i casi, vorrei anche sapere come chiamare il metodo statico per ogni metodo nel ArrayList:
// error The method nameOfStaticMethod is undefined for the type Class<capture#2-of ? extends MySuperClass>
classes.get(0).nameOfStaticMethod();
Grazie per i vostri commenti.
Potrebbe yo fornire una descrizione perché questa capacità non è incluso/sarebbe difficile da attuare? –
Le classi possono essere record in un database o sull'altro lato di una connessione di rete. Non è necessario che siano archiviati e organizzati in modo da facilitarne l'enumerazione per pacchetto. – bmargulies
Frummeled il tuo commento nella risposta ("frummeled" è il gergo olandese, che penso dovrebbe essere usato anche in inglese, nel senso che è stato adattato in qualche modo, dopo un sacco di "folletti"). –