// 获取Class Class c1 = Student.class; Student student = new Student(); Class c2 = student.getClass(); Class c3 = Class.forName("org.example.Student"); // 获取修饰符 0 默认不写 1 public 2 private 4 protect 8 static 16 final 32 synchroniz int result = c1.getModifiers(); // 获取类名 String name = c1.getName(); // 获取简单名称 String simpleName = c1.getSimpleName(); // 获取包名 Package pack = c1.getPackage(); Class superClass = c1.getSuperclass(); // 获取所有父接口 Class[] interfaces = c1.getInterfaces(); // 默认调用无参数构造方法创建对象 Student student2 = (Student) c1.newInstance(); // 获取所有公有属性,包含父类属性 Field[] fields = c1.getFields(); Field field = null; try { // 获取公有属性,包含父类属性 field = c1.getField("name"); } catch (NoSuchFieldException e) { throw new RuntimeException(e); } // 获取属性类型 Class fieldClass = field.getType(); // 获取所有私有属性 Field[] fields2 = c1.getDeclaredFields(); try { // 获取私有属性 Field fieldStuName = c1.getDeclaredField("stuName"); // 私有属性可直接被操作 fieldStuName.setAccessible(true); } catch (NoSuchFieldException e) { throw new RuntimeException(e); }
Java 反射方法使用记录
最新推荐文章于 2024-07-13 13:55:40 发布