对于属性的访问还是建议采用 setter 和 getter 方法,这样比较标准。
import java.lang.reflect.Field;
class Book{
private String title;
private int price;
}
public class Main {
public static void main(String[] args) {
try{
Class <?> cls = Class.forName("Book");
Book book = (Book) cls.newInstance();
Field titleField = cls.getDeclaredField("title");
titleField.setAccessible(true); // 取消封装
titleField.set(book,"java");
System.out.println(titleField.get(book));
}catch (Exception e){}
}
}