Java 反射-获取列表的大小<;SomeClass>;

Java 反射-获取列表的大小<;SomeClass>;,java,reflection,Java,Reflection,帮助我处理反思。有一个超类类和一个SomeClass: 公共类超类{ 私有列表类; 公共超类(){ this.listClass=新的ArrayList(); } //…getter和setter列表类 } 公共类SomeClass{} 如何使用反射来获取超类的listClass属性的大小?最好通过调用getListClass方法。如果您不知道它是一个列表或只是一个集合,可以使用迭代器 Class<?> objectClass = listClass.getClass(); if

帮助我处理反思。有一个
超类
类和一个
SomeClass

公共类超类{
私有列表类;
公共超类(){
this.listClass=新的ArrayList();
}
//…getter和setter列表类
}
公共类SomeClass{}

如何使用反射来获取
超类的
listClass
属性的大小?最好通过调用
getListClass
方法。

如果您不知道它是一个列表或只是一个集合,可以使用迭代器

Class<?> objectClass = listClass.getClass(); 
if (Collection.class.isAssignableFrom(objectClass)) {
    int size = ((Collection<?>) listClass).size();
}
如果可以,您只需拨打:

listClass.size();

既然您指出有getter和setter,那么为什么要使用反射呢?只需调用
getListClass().size()
@Holger,因为我使用不同的类和不同的方法(我指的是不同的方法名称)。类方法调用在json配置文件中定义,例如应用程序体系结构。也许使用不同的应用程序体系结构,我可以使用
getter
调用方法。谢谢,您的回答对我帮助很大。每个
集合
都有一个
size()
方法。因此,无需确保集合是一个
列表
。此外,不需要使用
Class objectClass=listClass.getClass()…Collection.class.isAssignableFrom(objectClass)
,作为Collection的普通
listClass实例
已经完成了这项工作。但是由于
listClass
的编译时类型已经是
List
,甚至不需要这样做
listClass.size();