package com.example.demo.model;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
public class Dog {
private Name dogName;
public Name getName() {
return dogName;
}
public void setName(Name name) {
this.dogName = name;
}
@Override
public String toString() {
return "Dog{" +
"dogName=" + dogName +
'}';
}
public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException, NoSuchMethodException, InvocationTargetException {
//设置复杂对象
Dog dog = new Dog();
Name name = new Name();
name.setMiddleName("WW");
dog.setName(name);
//获取到dog的属性dogName
Field dogName = dog.getClass().getDeclaredField("dogName");
//设置权限为可修改
dogName.setAccessible(true);
//获取dogName对象
Object dogNameObj = dogName.get(dog);
//获取doName的属性middleName
Field middleName = dogNameObj.getClass().getDeclaredField("middleName");
//设置权限为可修改
middleName.setAccessible(true);
//修改middleName的值
middleName.set(dogNameObj,"kk");
System.out.println(dog);
}
}
package com.example.demo.model;
public class Name {
private String middleName;
public String getMiddleName() {
return middleName;
}
public void setMiddleName(String middleName) {
this.middleName = middleName;
}
@Override
public String toString() {
return "Name{" +
"middleName='" + middleName + '\'' +
'}';
}
}