Tengo el siguiente problema. Tengo esta bonita clase y ahora quiero obtener todas las clases que extienden esa clase (clases internas) y rellenar 'classList' con ella. (De forma automática por supuesto)Obteniendo todas las clases internas por reflexión
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
alguna solución manual sería sólo para un bloque principal de manera estática, que es algo que no quiero hacer.
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));
}
Genial, eso fue fácil ... :-) – Roman
Esto también recuperaría clases internas que no extienden explícitamente CompoundReference, ¿o no? – Quotidian
Sí, pero no importa, no tengo otras clases internas allí, así que estoy bien con ese – Roman