gpt4 book ai didi

java - 对 Introspector 值使用 isPrimitive 或 isArray

转载 作者:行者123 更新时间:2023-12-02 00:31:04 26 4
gpt4 key购买 nike

我正在使用内省(introspection)来检索 beans get 方法,并且我希望能够确定结果是数组还是基元,但我总是得到错误响应。即使我知道该类型是 ArrayList。同样,isArray() 适用于所有类型的数组,例如原始数组、ArrayList 等?

Class<?> className = bean1.getClass();
ArrayList<ComparatorValue> updateIndexes = new ArrayList<ComparatorValue>();
BeanInfo beanInfo = Introspector.getBeanInfo(className);
PropertyDescriptor classProperties[] = beanInfo.getPropertyDescriptors();


for(int i=0; i<classProperties.length; i++) {
Method getter = classProperties[i].getReadMethod();
System.out.println(getter.invoke(bean1).getClass().isArray()); //Always false.
System.out.println(getter.invoke(bean1).getClass().isPrimitive()); //Always false.
}

最佳答案

集合(ArrayList 等)不是数组。它们是 Collections 的一部分的对象。

只有数组才是数组;

int[] foo = new int[5];
Object[] bar = new Object[4];

那些是数组。 -http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html

关于java - 对 Introspector 值使用 isPrimitive 或 isArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9074265/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com