package com.hisi.at;
import com.sun.deploy.util.StringUtils;
import java.io.FileReader;
import java.lang.reflect.Array;
import java.lang.reflect.Field;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.*;
public class B {
public static void main(String[] args) throws Exception{
RTest rTest = new RTest();
Field field = RTest.class.getField("field1");
field.set(rTest, "test1");
System.out.println(field.get(rTest));
field = RTest.class.getDeclaredField("field2");
field.set(rTest, "test2");
System.out.println(field.get(rTest));
field = RTest.class.getDeclaredField("field3");
//getField(String name) 只能获取 public 字段(包括继承的)
//getDeclaredField(String name) 可以获取所有访问级别的字段(不包括继承的)
//private 字段完全可以用反射访问,只不过需要先调用 setAccessible(true) 来覆盖 Java 的访问控制检查。
field.setAccessible(true);
field.set(rTest, "test3");
System.out.println(field.get(rTest));
}
}
class RTest {
public String field1;
String field2;
private String field3;
}