关于Field类返回数组

来源:3-5 Field类的概述和使用

无限精彩

2020-01-08 21:02:54

http://img.mukewang.com/climg/5e15d2dc093883b810900872.jpg

老师,这返回数组应该如何写代码,如何获取值?

写回答

1回答

好帮手慕酷酷

2020-01-09

同学你好,当获取的属性是一个数组时,可以按照如下方式获取值。

首先通过getDeclaredFields()方法获取说有的属性。然后分别为数组中的属性赋值。最后通过get()方法获取对象p的属性值。

具体如下:

	@Test
	// 测试私有的属性
	public void demo2() throws Exception {
		// 获得Class
		Class class1 = Class.forName("com.imooc.reflect.test.Person");
		// 获得私有的属性
		Field[] declaredFields = class1.getDeclaredFields();
		// 操作属性:
		Person p = (Person) class1.newInstance();
                // 私有属性,需要设置一个可访问的权限:
		declaredFields[0].setAccessible(true);

		declaredFields[0].set(p, "小明");
		declaredFields[1].setAccessible(true);

		declaredFields[1].set(p, "男");

		
		// 获取值:

		Object obj = declaredFields[1].get(p);
		System.out.println(p);

	}

结果如下:

http://img.mukewang.com/climg/5e169ae5098e006002910062.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

0

0 学习 · 8016 问题

查看课程