} 反射
Class cls = Class.forName("com.mychebao.zzm.entity.Car");//動態加載類或者
ClassLoader loader = Thread.currentThread().getContextClassLoader();//獲得加載器Class cls = loader.loadClass("com.mychebao.zzm.entity.Car");//加載,感覺這個是個類的結構,包含所有東西就等著你拿起來用構造函數
Constructor cons = cls.getDeclaredConstructor((Class[])null);//獲取構造函數此處為無參的實例化對象
Car car = (Car)cons.newInstance();//構造函數實例化Car或者Car car = (Car)cls.newInstance();//直接實例化操作對象
Method setBrand = cls.getDeclaredMethod("setBrand", String.class);//獲取參數是String的setBrand方法Method[] methods = cls.getMethods();//獲取所有方法(public的)Method[] methods = cls.getDeclaredMethods();//獲取所有方法setBrand.invoke(car, "碰碰車!");//對car對象執行這個方法String name=method.getName();//獲取方法名Class[] types=method.getParameterTypes();//獲取方法的參數類型Field colorFld = cls.getDeclaredField("color");//獲取color屬性無論公私colorFld.setaccessible(true);//設置為可操作,如果是私有屬性設置為true后即可對其進行進一步操作,反射可以無視其private屬性,破防呀colorFld.set(pCar, "黑");直接給屬性賦值method.getAnnotation(Test.class);//方法是是否含有Test注解Class[] types = {String.class,int.class}; //參數是String和int的Method m = cls.getDeclaredMethod("name", types);//獲取方法名是name參數是String和int的方法新聞熱點
疑難解答