反射的作用、应用场景

反射的作用、应用场景

  • 基本作用:可以的到一个类的全部成分然后操作
  • 可以破坏封装性
  • 最终要的作用:适合做java的框架,基本上,主流的框架都会基于反射设计出一些通用的功能
  • 案例

    • 使用反射做一个简易版的框架
    • 需求
      • 对于任意一个对象,该框架都可以把字段名和对应的值,保存到文件中去
    • 实现步骤
      • 定义一个方法,可以接收任意对象
      • 每受到一个对象后,使用反射获取该对象的Class对象,然后获取全部的成员变量
      • 遍历成员变量,然后提取成员变量在该对象中具体的值
      • 把成员变量名、和其值、写出到文件中
    • 具体实现代码如下
      • package com.example.Frame;
        
        import java.io.FileOutputStream;
        import java.io.PrintStream;
        import java.lang.reflect.Field;
        
        public class ObjectSaveFrame {
            public static void SaveFrame(Object obj) throws Exception {
                PrintStream printStream = new PrintStream(new FileOutputStream("D:\\JavaProject\\Spring\\Spring\\src\\main\\resources\\data.txt", true));
                Class aClass = obj.getClass();
                String aName = aClass.getSimpleName();
                printStream.println("--------" + aName + "--------");
                printStream.println(aClass.getSimpleName());
                Field[] declaredFields = aClass.getDeclaredFields();
                for (Field declaredField : declaredFields) {
                    declaredField.setAccessible(true);
                    String name = declaredField.getName();
                    Object value;
                    value = declaredField.get(obj);
                    printStream.println(name + "=" + value);
                }
                printStream.close();
        
            }
        
        }
        

你可能感兴趣的:(Java,语言进阶学习,java,开发语言)