方法的調用(正常的調用:對象.方法()。反射調用方法:方法.對象())java
靜態屬性的調用(正常的調用:類.屬性。反射調用:屬性.類)
android
Class<?> demo1 = Class.forName("java.util.Date");
spa
Class<?> demo1_1 = java.util.Date.class;
code
Class<?> demo1_2 = "java.util.Date" .getClass();orm
Class<?> demo1_3 = new java.util.Date(10).getClass();對象
Class<?> demo2 = Class.forName("android.media.MediaRecorder$OutputFormat"); //內部類get
Method mtdGetDefault = demo1 .getMethod("Date");// 普通方法,後面「Date」表明方法名稱it
Object obj = mtdGetDefault.invoke(demo1,參數1,參數2,參數3...); class
Constructor<?> cons = demo2.getConstructor(Integer.class,String.class,Object.class, ...);// 構造方法,括號裏面的是構造方法的參數stream
Object obj1 = cons.newInstance(參數1,參數2,參數3...);
Constructor<?> cons1[] = demo2.getConstructors();
Object obj1_1 = cons1[0].newInstance();
Object obj1_2 = cons1[0].newInstance(參數1,參數2,參數3...);
3.經過反射獲取靜態屬性(非靜態屬性通常使用get方法來獲取)
Field wave = demo2 .getField("WAVE");
int mWava = (Integer) wave.get(demo2);