我有以下问题。我有这个漂亮的类,现在我想要得到所有扩展该类的类(内部类)并用它填充'classList'。 (当然在自动方式)通过反射获取所有内部类
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
一些手动解决方案将只是主要的静态块,那是什么,我不想做的事。
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));
}
好极了,那很简单。:-) – Roman 2010-05-24 18:20:11
这也会检索内部类,它们没有明确地扩展CompoundReference,不是吗? – Quotidian 2010-05-24 18:22:33
是的,但没关系,我没有任何其他的内部类,所以我很喜欢那个 – Roman 2010-05-24 18:26:26