Java知识点总结(反射-获取类的信息)

发布时间:2019-11-20 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了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,请注明来意。