一、能夠獲得信息:某個類的數據成員、方法和構造器、某個類實現了那些接口函數
對於每一個類來講,JRE都爲其保留一個不變的Class類型的對象this
一個Class類型的對象包含特定某個類有關的信息spa
二、Class對象只能由系統創建code
三、一個類再JVM中只會有一個Class實例對象
四、每一個類都會記得本身由那個Class實例生成blog
一、經過.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(); }
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);
解析類路徑下的文件
JDBC鏈接數據的相關獲取的方法