什麼是Java的反射機制?指在運行狀態中,對於任意一個類,都可以知道這個類的全部屬性和方法。對於任意一個對象,都能調用它的任意一個方法。這種動態獲取信息,以及動態調用對象方法的功能叫Java語言的反射機制. 經過Java的反射機制,能夠在運行期間調用對象的任何方法,先看一個簡單的demojava
/** * @author Lee * @// TODO 2018/7/24-13:07 * @description 反射demo */ public class ReflectDemo { public static void main(String[] args) throws Exception { Class clazz = Class.forName("com.developlee.springmvclearn.reflect.Reflect"); Object object = clazz.newInstance(); Method method = clazz.getDeclaredMethod("say"); method.invoke(object); } } //測試類 public class Reflect { public void say(){ System.out.println("Hello"); } }
反射建立類實例的三種方式spring
Reflect reflect = new Reflect(); //Reflect 的實例對象reflect //Reflect 也是一個實例對象,它是Class類的實例對象 Class class1 = Reflect.class; //第一種形式:任何一個類低都隱含一個靜態成員變量class Class class2 = reflect.getClass(); // 第二種形式: 已知該類的對象,經過getClass()方法獲取 Class class3 = Class.forName("com.developlee.springmvclearn.reflect.Reflect");//第三種形式 System.out.println(class1 == class2); System.out.println(class1 == class3);
無論class1,class2,class3 都表明了Reflect類的類類型,一個類只多是Class,便是類的一個實例對象mvc