本帖最后由 星辉祝愿 于 2015-5-25 13:28 编辑
1、获得Class对象,就是获取到指定的名称的字节码文件对象。
获取这个Class对象,有三种方式:
1:通过每个对象都具备的方法getClass来获取。弊端:必须要创建该类对象,才可以调用getClass方法。
2:每一个数据类型(基本数据类型和引用数据类型)都有一个静态的属性class。弊端:必须要先明确该类。
前两种方式不利于程序的扩展,因为都需要在程序使用具体的类来完成。
3:使用的Class类中的方法,静态的forName方法。
指定什么类名,就获取什么类字节码文件对象,这种方式的扩展性最强,只要将类名的字符串传入即可。
- import java.lang.reflect.Method;
- public class test1 {
- public static void main(String[] args) throws Exception {
- System.out.println(test1.class);
-
- method_1();
- }
- public static void method_1() throws ClassNotFoundException{
- // 1. 根据给定的类名来获得 用于类加载
- Class c1 = Class.forName("fanshe.Student");
-
- // 2. 如果拿到了对象,不知道是什么类型 用于获得对象的类型
- Object obj = new Student();
- Class c2 = obj.getClass();// 获得对象具体的类型
- // 3. 如果是明确地获得某个类的Class对象 主要用于传参
- Class c3 = Student.class;
-
- System.out.println(c1.getName());
- }
- }
- class Student{
- private int age;
- private String name;
- /**
- * @return age
- */
- public int getAge() {
- return age;
- }
- /**
- * @param age 要设置的 age
- */
- public void setAge(int age) {
- this.age = age;
- }
- /**
- * @return name
- */
- public String getName() {
- return name;
- }
- /**
- * @param name 要设置的 name
- */
- public void setName(String name) {
- this.name = name;
- }
- }
复制代码
|
|