0
我有一個類(有超類),我想檢查所有字段是否爲NULL,或者它是否爲集合,它是空的。用下面的代碼我可以檢查NULL以及它是否是一個集合,但我似乎無法投集合,以檢查它的大小:反射 - 繼承的字段全爲空或空
public static boolean objectIsEmpty(Object object) {
for (Class<?> c = object.getClass(); c != null; c = c.getSuperclass()) {
Field[] fields = c.getDeclaredFields();
for (Field field : fields) {
field.setAccessible(true);
try {
if (field.get(object) != null) {
if (field.getType().equals(List.class)) {
// System.err.println("len " +
// Array.getLength(field.get(object)));
}
if (Collection.class.isAssignableFrom(field.getType())) {
System.err.println(Collection.class.cast(field).size());
// ClassCastException thrown here
}
}
} catch (IllegalAccessException e) {
// Should not occur with setAccessible(true), return false just
// in case
e.printStackTrace();
return false;
}
}
}
return true;
但導致java.lang.ClassCastException:不能將java.lang.reflect.Field轉換爲java.util.Collection
如何獲取列表的大小?
哦,天啊,當然。現在我想到了它的總體感覺,非常感謝快速響應! – CounterFlame
不客氣:) –