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 + '\'' + '}'; } }