Ho il seguente problema. Ho questa bella classe e ora voglio ottenere tutte le classi che estendono quella classe (classi interne) e riempire 'classList' con essa. (In modo automatico, naturalmente)Ottenere tutte le classi interne per riflessione
public abstract class CompoundReference {
private static List<Class<? extends CompoundReference>> classList
= new ArrayList<Class<? extends CompoundReference>>();
@CompoundKey(gsType = User.class, dbType = UserDetailsMappings.class)
public static class CUser extends CompoundReference {
}
@CompoundKey(gsType = Catalog.class, dbType = CatalogDetailsMappings.class)
public static class CCatalog extends CompoundReference {
}
@CompoundKey(gsType = Product.class, dbType = ProductDetailsMappings.class)
public static class CProduct extends CompoundReference {
}
@CompoundKey(gsType = Category.class)
public static class CCategory extends CompoundReference {
}
@CompoundKey(gsType = Poll.class, dbType = PollDetailsMappings.class)
public static class CPoll extends CompoundReference {
}
// much mroe inner classes
qualche soluzione manuale sarebbe solo per un blocco principale come statica, che è qualcosa che non voglio fare.
static {
classList.addAll(Arrays.asList(CUser.class, CCatalog.class,
CProduct.class, CCategory.class,
CPoll.class, CComment.class, CWebPage.class,
CReview.class, CPost.class, CMessage.class, CStory.class,CPicture.class));
}
Ottimo, è stato facile .. :-) – Roman
Ciò richiamerebbe anche le classi interne che non estendono esplicitamente CompoundReference, vero? – Quotidian
Sì, ma non importa, non ho altre classi interne lì, quindi sono bravo con quello – Roman