java在不创建新实例的情况下遍历数组字段

java在不创建新实例的情况下遍历数组字段,java,reflection,Java,Reflection,我正试图编写一个方法来获取对象,并对对象的字段进行一些逻辑处理 我的方法如下所示: public void exampleCast(Object obj) { Field[] fields = obj.getClass().getFields(); for (Field field : fields) { if (field.getClass().isArray()) { /* HO

我正试图编写一个方法来获取对象,并对对象的字段进行一些逻辑处理

我的方法如下所示:

public void exampleCast(Object obj) {
    Field[] fields = obj.getClass().getFields();
    for (Field field : fields) {                    
        if (field.getClass().isArray()) {

        /*
            HOW CAN I GO OVER THE ARRAY FIELDS , WITHOUT CREATING NEW INSATCNE ?
            SOMETHING LIKE:
            for (int i = 0; i < array.length; i++) {
               array[i] ...
            }

        */  
        } else {
            ...
            ...
        }
    }
}   
并调用我的方法:

TBD1 tbd1 = new TBD1();
exampleCast(tbd1);
在我的方法中,我不知道如何在不创建新实例的情况下获得数组值(使用“newInstance”方法) 可能吗?(请参阅我在示例中写的注释)

我读了这两个网站:

但是我没有得到我想要的

请帮忙:)
谢谢

如果我理解你的问题,你可以使用

if (field.getType().isArray()) { // <-- should be getType(), thx @Pshemo
    Object array = field.get(obj);
    int len = Array.getLength(array);
    for (int i = 0; i < len; i++) {
        Object v = Array.get(array, i);
        System.out.println(v);
    }
} // ...

if(field.getType().isArray()){//它不应该是
getType
而不是
getClass
?如果我没弄错的话,
field
实例调用的
getClass
将返回我们
field.class
,它肯定不是数组。我们要做的是检查变量的类型是否是数组。
if (field.getType().isArray()) { // <-- should be getType(), thx @Pshemo
    Object array = field.get(obj);
    int len = Array.getLength(array);
    for (int i = 0; i < len; i++) {
        Object v = Array.get(array, i);
        System.out.println(v);
    }
} // ...