????????
????????????????????????????????е?·??????????Java?????????????????????ú????????£??????????????EventBus 2.x?汾????Retrofit???????View????????????????Java????????????????????÷????????????????????????????£?Android okHttp?????????Json??????Android??????????????SubModule???????????????·??Router????
????????Java????????
????JAVA??????????????????У??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????Java?????????
?????????????????Щ?????
????????????ж???????????????????
????????????????????????????
????????????ж???????????????е??????????????
????????????????????????????????
???????????????
????Java?????????
????java.lang.Class; //??
????java.lang.reflect.Constructor;//??????
????java.lang.reflect.Field; //?????????
????java.lang.reflect.Method;//??????
????java.lang.reflect.Modifier;//???????
????Java???????????
????1.??class???????
//??????? ???????getClass????
Person person = new Person();
Class<?> class1 = person.getClass();
//??????? ??????class????
class1 = Person.class;
try {
//???????? ???Class?????????——forName()?????
class1 = Class.forName("com.whoislcj.reflectdemo.Person");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
????2.?????class??????????
boolean isPrimitive = class1.isPrimitive();//?ж?????????????
boolean isArray = class1.isArray();//?ж???????????
boolean isAnnotation = class1.isAnnotation();//?ж???????????
boolean isInterface = class1.isInterface();//?ж??????????
boolean isEnum = class1.isEnum();//?ж???????????
boolean isAnonymousClass = class1.isAnonymousClass();//?ж???????????????
boolean isAnnotationPresent = class1.isAnnotationPresent(Deprecated.class);//?ж????????????????
String className = class1.getName();//???class???? ????????·??
Package aPackage = class1.getPackage();//???class??????
String simpleName = class1.getSimpleName();//???class????
int modifiers = class1.getModifiers();//???class???????
Class<?>[] declaredClasses = class1.getDeclaredClasses();//?????
Class<?> declaringClass = class1.getDeclaringClass();//????
????3.?????class????????????????????????
Field[] allFields = class1.getDeclaredFields();//???class?????????????
Field[] publicFields = class1.getFields();//???class?????public????
try {
Field ageField = class1.getDeclaredField("age");//???class???????
Field desField = class1.getField("des");//???class?????public????
} catch (NoSuchFieldException e) {
e.printStackTrace();
}
Method[] methods = class1.getDeclaredMethods();//???class?????????????????
Method[] allMethods = class1.getMethods();//???class????????з??? ????????????
Class parentClass = class1.getSuperclass();//???class????????
Class<?>[] interfaceClasses = class1.getInterfaces();//???class????????н??
Constructor<?>[] allConstructors = class1.getDeclaredConstructors();//???class???????????????????
Constructor<?>[] publicConstructors = class1.getConstructors();//???class????public??????
try {
Constructor<?> constructor = class1.getDeclaredConstructor(new Class[]{String.class});//????????????????
Constructor publicConstructor = class1.getConstructor(new Class[]{});//????????????public??????
} catch (NoSuchMethodException e) {
e.printStackTrace();
}
Annotation[] annotations = class1.getAnnotations();//???class????????????
Annotation annotation = class1.getAnnotation(Deprecated.class);//???class??????????
Type genericSuperclass = class1.getGenericSuperclass();//???class???????????? Type
Type[] interfaceTypes = class1.getGenericInterfaces();//???class????????н???type????