脚本宝典收集整理的这篇文章主要介绍了Java知识点总结(反射-获取类的信息),脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
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(); } } }
以上是脚本宝典为你收集整理的Java知识点总结(反射-获取类的信息)全部内容,希望文章能够帮你解决Java知识点总结(反射-获取类的信息)所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。