第14章 Java反射机制

14.2.2 Class类的常用方法

第14章 Java反射机制

14.2.3 反射的应用举例

  • String str = "test4.Person";
  • Class clazz = Class.forName(str);
  • Object obj = clazz.newInstance();
  • Field field = clazz.getField("name");
  • field.set(obj, "Peter");
  • Object obj2 = field.get(obj);
  • System.out.println(obj2);

14.2.4 实例化Class类对象(四种方法)

1)前提:若已知具体的类,通过类的class属性获取,该方法

                    最为安全可靠,程序性能最高

       实例:Class clazz = String.class;

2)前提:已知某个类的实例,调用该实例的getClass()方法获

                    取Class对象

       实例:Class clazz = “www.atguigu.com”.getClass();

3)前提:已知一个类的全类名,且该类在类路径下,可通过

       Class类的静态方法forName()获取,可能抛出ClassNotFoundException

       实例:Class clazz = Class.forName(“java.lang.String”);

4)其他方式(不做要求)

ClassLoader cl = this.getClass().getClassLoader();

Class clazz4 = cl.loadClass(“类的全类名”);

 

本教程由尚硅谷教育大数据研究院出品,如需转载请注明来源。