java基础之反射

  • 定义
    Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象,都能够调用它的任意方法和属性。这种动态获取信息以及动态调用对象方法的功能称为Java反射机制。

  • 使用反射获取private static 的值
    static修饰的变量属于类,所有不需要通过创建对象的方式去获取

  • 被测试代码

    public class Book {
    
      private static String str = "SS";
      
      private static void getStr() {
        System.out.println(str);
      }
    }
    
  • 获取静态变量

    public class ReflectTest {
    
      @SuppressWarnings("unchecked")
      public static void main(String[] args) throws Exception {
        Class clazz = Book.class;
        Field field = clazz.getDeclaredField("STR");
        field.setAccessible(true);
        System.out.println(field.get(clazz));
     }
    
  • 调用静态方法

    Method method = Book.class.getDeclaredMethod("getStr", null);
    method.setAccessible(true);
    method.invoke(null, null);
    

你可能感兴趣的:(java基础)