package get_class_method; public class ReflectDemo { /** * @param args */ public static void main(String[] args) { getClassObject1(); getClassObject2(); getClassObject3(); } public static void getClassObject1(){ Person p = new Person(); System.out.println(p.getClass().getName()); } /* * 方式二:重点掌握 * 通过给定类的字符串名称就可获得该类的字节码文件对象,更为扩展。 * (第一种和第三种都不具有扩展性) */ public static void getClassObject2(){ Class<Person> pclass = null; try { /* * 类的名字一定要写全(包括该类的包) * 因为工程默认的路径查找时在bin目录或者src目录,如果类名不全,就无法找到该类 */ pclass = (Class<Person>) Class.forName("get_class_method.Person"); System.out.println(pclass.getName()); } catch (ClassNotFoundException e) { e.printStackTrace(); } } /* * 方式三: * 任何数据类型都有一个静态的属性 .class来获取其对应类的字节码文件对象 * 相对简单,但是还是要明确用到类中的静态成员。还是不够扩展! */ public static void getClassObject3(){ Class pclass = Person.class; System.out.println(pclass.getName()); } }
时间: 2024-10-10 04:56:10