Java高级开发反射手段更换对象根节点内容





新建对像类,其中包括两个私有属性

class Person {
	//定义对象的两个私有属性
	private String name = "张三";
	private String age = "23";
	
	
	public String getName() {
		return name;
	}
	
	public String getAge() {
		return age;
	}
	
	
}

置换根节点内容的操作

Person person = new Person();
		
		System.out.println("age is "+person.getAge()+"\t name is "+person.getName());
		//age is 23	 name is 张三
		
		
		String name = person.getName();
		String age = person.getAge();
		
		//通过反射的方法将对象两个根节点内容进行转换
		//反射手段获取一个对象
		Class c = person.getClass();
		//获取对象中指定的属性
		Field field1 = c.getDeclaredField("name");
		Field field2 = c.getDeclaredField("age");
		//由于这里我们进行操作的属性是私有的要权限,所以要使用暴力反射
		field1.setAccessible(true);
		field2.setAccessible(true);
		//对其属性进行新的设置
		//改变age节点内容 
		field1.set(person, age);
		//改变name节点内容
		field2.set(person, name);
		
		System.out.println("age is "+person.getAge()+"\t name is "+person.getName());
		//age is 张三	 name is 23
	
	}





你可能感兴趣的:(反射,java开发,更换根节点内容)