Java反射之数组的反射应用

上一篇我们说了Java反射之成员方法的反射
这一篇我们说一说数组的反射应用,数组的有长度等属性,所以也会有相应的方法获得这些属性,这里我们不一一列举哪些方法。我们来了解反射包中的一个类----Array类,它比util包中的Arrays少了一个s。

[一] Array类中的一些方法

static Object get(Object array, int index):返回绑定的数组对象相应下标的值。
和这一方法相似的,用于返回特定的类型值的方法:
在这里插入图片描述
其中static int getLength(Object array) :返回数组的长度。
static Object newInstance(Class<?> componentType, int... dimensions) :创建一个特定类型、特定维度的数组。
除了get方法,还有一堆相应的set方法这里就省略介绍了。

[二] 案例演示:打印所有对象,如果是数组,则拆开打印

    public static void main(String[] args) throws Exception {
        
        Object[] obj1 = new String[]{"abc","ab","cc"};
        Object obj2 = new String("我不是数组");
        printObject(obj2);
        printObject(obj1);
    }

    private static void printObject(Object obj) {
        Class cls = obj.getClass();
        if(cls.isArray()){
            //如果是数组
            for(int i = 0;i < Array.getLength(obj);i++){
                System.out.println(Array.get(obj, i));
            }
        }else {
            //如果不是数组
            System.out.println(obj);
        }
    }

结果:

我不是数组
abc
ab
cc

下一篇介绍Java反射之对JavaBean的内省操作

猜你喜欢

转载自www.cnblogs.com/leyvan/p/12461719.html