java 反射类(Reflection)方法使用整理
2021-06-09 本文已影响0人
一块自由的砖
每日一经
每天收集一个java日常能用到的解决问题的方法,以后方便查阅。
实践
反射类(Reflection):运行时去检查或者修改应用程序的能力
常用
获取Class对象
Class.forName("java.lang.Integer")
获取包名称
File file = new File(".");
Package packageOfFile = file.getClass().getPackage();
// java.io
String packageNameOfFile = packageOfFile.getName();
得到类的简写名称(不包含包路径)
Integer a = 0;
Class<?> clazz = a.getClass();
// Integer
System.out.println("Simple name: " + clazz.getSimpleName());
得到类实现的接口
Integer a = 0;
Class<?> clazz = a.getClass();
Class<?>[] interfaces = clazz.getInterfaces();
// interface java.lang.Comparable
System.out.println("Interfaces: " + Arrays.toString(interfaces));
得到类的成员变量
Integer a = 0;
Class<?> clazz = a.getClass();
Field[] fields = clazz.getDeclaredFields();
System.out.println("Fields: " + Arrays.toString(fields));
得到类的方法
Integer a = 0;
Class<?> clazz = a.getClass();
Method[] methods = clazz.getMethods();
System.out.println("Methods: " + Arrays.toString(methods));