Java反射.操作属性和数组

// 操作类中的属性
	public static void main(String[] args) throws Exception {
		Class<?> c1 = null;
		try {
			c1 = Class.forName("fanshe.Person");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		Object newInstance = c1.newInstance();
		Field nameField = null;
		Field ageField = null;

		nameField = c1.getDeclaredField("name");// 取得属性
		ageField = c1.getDeclaredField("age");// 取得属性

		nameField.setAccessible(true);
		ageField.setAccessible(true);// 将属性设置为,可被外部访问

		nameField.set(newInstance, "Lee");// 设置属性
		ageField.set(newInstance, 15);

		System.out.println(nameField.get(newInstance));
		System.out.println(ageField.get(newInstance));// 通过get取得属性内容
	}


// 反射操作数组
	public static void main(String[] args) {
		int[] arr = { 1, 2, 3 };
		
		Class<?> componentType = arr.getClass().getComponentType();
		String name = componentType.getName();//得到数组类型
		System.out.println(name);

		Array.set(arr, 0, 8);// 给数组,赋新值
		System.out.println(Array.get(arr, 0));
	}

猜你喜欢

转载自8850702.iteye.com/blog/2282577
今日推荐