摘要:知识点总结反射获取类的信息知识点总结反射应用反射的,获取类的信息类的名字属性方法构造器等获取类名类的全路径名称类名获取属性信息只能获取的属性获取所有的属性根据属性名称获取属性根据属性名称获取属性获取方法信息获取所有的方法,包括父类的方法获
Java知识点总结(反射-获取类的信息)
@(Java知识点总结)[Java, 反射]
应用反射的API,获取类的信息(类的名字、属性、方法、构造器等)
import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; public class Test02 { // 获取类名 private static void getName(Class clazz){ String name = clazz.getName(); System.out.println(name); // com.gs.Student 类的全路径名称 String simpleName = clazz.getSimpleName() ; System.out.println(simpleName); // Student 类名 } // 获取属性信息 private static void getFields(Class clazz){ Field[] fields = clazz.getFields() ; // 只能获取 public 的属性 for (Field f : fields) { System.out.println(f); // public double com.gs.Student.score } Field[] declaredFields = clazz.getDeclaredFields() ; // 获取所有的属性 for (Field df : declaredFields) { System.out.println(df); } try { Field field = clazz.getField("score"); //根据属性名称获取public 属性 System.out.println(field); Field declaredField = clazz.getDeclaredField("name"); System.out.println(declaredField); //根据属性名称获取 private 属性 } catch (NoSuchFieldException e) { e.printStackTrace(); } catch (SecurityException e) { e.printStackTrace(); } } // 获取方法信息 public static void getMethod(Class clazz){ Method[] methods = clazz.getMethods() ; //获取所有的 public 方法,包括父类的方法 for (Method m : methods) { System.out.println(m); } System.out.println("~~~~~~~~~~~"); Method[] declaredMethods = clazz.getDeclaredMethods(); // 获取本类声明的所有的方法 for (Method dm : declaredMethods) { System.out.println(dm); } try { Method m = clazz.getMethod("getName", null); //获取指定名字的方法,后面的形参表示获取方法的参数类类型 System.out.println(m); //如果方法有参,则必须传递参数类型对应的 Class 对象 Method dm = clazz.getDeclaredMethod("setName", String.class); System.out.println(dm); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (SecurityException e) { e.printStackTrace(); } } // 获取构造方法信息 public static void getConstructor(Class clazz){ try { // 获取指定名称的构造方法 Constructor c = clazz.getDeclaredConstructor(int.class,String.class); System.out.println(c); //获取所有构造方法 Constructor[] cs= clazz.getConstructors() ; for (Constructor constructor : cs) { System.out.println(constructor); } } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (SecurityException e) { e.printStackTrace(); } } public static void main(String[] args) { String path = "com.gs.Student"; try { Class clazz = Class.forName(path); //getName(clazz); //getFields(clazz); //getMethod(clazz); getConstructor(clazz); } catch (ClassNotFoundException e) { e.printStackTrace(); } } }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/71581.html
摘要:知识点总结反射介绍知识点总结反射反射程序在运行状态中,可以动态加载一个只有名称的类动态调用类的所有属性和方法加载完类之后,在堆内存中,就产生了一个类型的对象一个类只有一个对象。 Java知识点总结(反射-介绍) @(Java知识点总结)[Java, 反射] 反射 程序在 运行状态中 ,可以动态加载一个只有名称的类 (动态调用类的所有属性和方法)Class c = Class.for...
摘要:知识点总结反射通过反射操作类的属性和方法知识点总结反射使用反射操作类的属性和方法通过反射调用构造方法,构造对象其实调用无参构造器张三调用有参构造器李四通过反射调用普通方法获取方法激活方法王武王武通过反射操作属性是属性,如果不写会这个私有属 Java知识点总结(反射-通过反射操作类的属性和方法 ) @(Java知识点总结)[Java, 反射] 使用反射操作类的属性和方法: import ...
摘要:反射机制一结合官方通过编写的反射教程,复习一下反射的知识。反射的概念反射是一种在运行时获取以及修改应用行为的一种工具。因为反射需要动态的解析类的信息,相比于非反射使用的方式要慢。反射需要获取一定的运行时权限,在特定的安全环境下不一定存在。 Java反射机制(一) 结合Oracle官方通过JDK8编写的反射教程,复习一下反射的知识。结尾篇补一个小例子。 主要内容 这次博客的主要内容就是简...
摘要:通过反射获取无参构造方法并使用得到无参构造方法获取所有的修饰的构造方法。如果方法没有返回值,返回的是反射获取空参数成员方法并运行代码演示反射获取成员方法并运行获取对象中的成员方法获取的是文件中的所有公共成员方法包括继承的类是描述 01类加载器 * A.类的加载 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化。 ...
摘要:通过反射获取带参无返回值成员方法并使用设置安全检查,访问私有构造函数必须创建实例这种不行,注意和方法需要传递参数测试复制这个功能获取私有方法,同样注意和的区别赋予访问权限调用方法。 反射 目录介绍 1.反射概述 1.1 反射概述 1.2 获取class文件对象的三种方式 1.3 反射常用的方法介绍 1.4 反射的定义 1.5 反射的组成 1.6 反射的作用有哪些 2.反射的...
阅读 2053·2021-10-08 10:04
阅读 3078·2021-09-22 10:02
阅读 2225·2019-08-30 15:56
阅读 825·2019-08-30 15:54
阅读 920·2019-08-30 15:54
阅读 1275·2019-08-30 15:53
阅读 2507·2019-08-30 11:21
阅读 3556·2019-08-30 10:56