第一遍的时候删光了代入的值,也没用set
Topic source用了set之后也必须输入类型
package com.itranswarp.learnjava;
import java.lang.reflect.Field;
public class Main {
public static void main(String[] args) throws Exception {
String name = "Xiao Ming";
int age = 20;
Person p = new Person(age);
// TODO: 利用反射给name和age字段赋值:
Class c = p.getClass();
Field f = c.getDeclaredField("name");
f.setAccessible(true);
f.set(p, name);
f = c.getDeclaredField("age");
f.setAccessible(true);
f.set(p, age);
System.out.println(p.getName()); // "Xiao Ming"
System.out.println(p.getAge()); // 20
}
}
- 1
牛油火锅不错
package com.itranswarp.learnjava;
import java.lang.reflect.Field;
/**
* Learn Java from https://www.liaoxuefeng.com/
*
* @author liaoxuefeng
*/
public class Main {
public static void main(String[] args) throws NoSuchFieldException, SecurityException {
// TODO: 利用反射给name和age字段赋值:
Person p1 = new Person("Xiao Ming");
Class c1 = p1.getClass();
Field f1 = c1.getDeclaredField("name");
f1.setAccessible(true);
Person p2 = new Person(20);
Class c2 = p2.getClass();
Field f2 = c2.getDeclaredField("age");
f2.setAccessible(true);
System.out.println(p1.getName()); // "Xiao Ming"
System.out.println(p2.getAge()); // 20
}
}