一、反射-Class&ClassLoader

 

Class類

一、能夠獲得信息:某個類的數據成員、方法和構造器、某個類實現了那些接口函數

  對於每一個類來講,JRE都爲其保留一個不變的Class類型的對象this

  一個Class類型的對象包含特定某個類有關的信息spa

二、Class對象只能由系統創建code

三、一個類再JVM中只會有一個Class實例對象

四、每一個類都會記得本身由那個Class實例生成blog

 

獲得Class對象

一、經過.class接口

        Class clazz = null;
        clazz = Person.class;

二、經過getClass()方法get

        Class clazz = null;
        clazz = new Person().getClass();

三、經過Class對象的forName()靜態方法獲取:全類名的方式io

 Class clazz = null;
        try {
            clazz = Class.forName("refelect.Person");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

 

Class類經常使用的方法

public static Class<?> forName(String className)
返回指定類名name的Class對象
public T newInstance()
調用缺省的構造函數,返回Class對象的一個實例
public String getName()
返回此Class對象所表示的實體名稱
Class<? super T> getSuperclass()
返回當前Class對象對象的父類的CLass對象
Class<?>[] getInterfaces()
獲取當前Class對象接口
public ClassLoader getClassLoader()
返回此類的類加載器

 

public class Person {

    String name;
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public Person() {
    }
}

 

newInstance()方法:調用的是無參的構造器table

       Class clazz = Class.forName("refelect.Person");

        //利用Class的newInstance()方法來建立一個對象
        Object o = clazz.newInstance();
        System.out.println(o);

 

ClassLoader

 

 

解析類路徑下的文件

JDBC鏈接數據的相關獲取的方法

相關文章
相關標籤/搜索