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的内省操作

posted @ 2020-03-11 13:00  阿尔伯特-李古拉-逸凡  阅读(118)  评论(0编辑  收藏  举报