---------------------- ASP.Net+Android+IOS開發、.Net培訓、期待與您交流! ----------------------
Person p = new Person("zhangsan",23);PropertyDescriptor pd = new PropertyDescriptor("name",p.getClass());Method methodGetName = p.getReadMethod();Object retVal = methodGetName.invoke(p);Method methodSetName = p.getWriteMethod();Object retVal = methodGetName.invoke(p,"zhang");
(3)BeanUtils可以操作map
PropertyUtils不進行類型轉換
程式碼分析:通過中繼資料對代碼進行分析(使用反射)
@Override RetentionPolicy.SOURCE
@Deprecated RetentionPolicy.RUNTIME
@SuppressWarningsRetentionPolicy.SOURCE
@Target(ElementType.METHOD)//該註解用在方法上
@Target({ElementType.METHOD,ElementType.Type})//該註解用在方法和類型上
Class類實現Type介面 Class Enum @Override Interface 都是Type(1.5之後)
@Retention(RetentionPolicy.RUNTIME)//元註解 ,三個階段@Interface A{}
@Aclass B{}
@Aclass C{ if(C.class.isAnnotationPresent(A.class)){ A ann = (A)C.class.getAnnotation(A.class); }}
@Retention(RetentionPolicy.RUNTIME)//元註解 ,三個階段@Interface A{String color() default "red";Strng value();//value()屬性很特殊int[] arr() default {1,2,2};}@A(color="red",value="set",arr={1,2,3})//設定,如果只有value屬性需要設定時,可以把=號省略@A("setValue")class C{if(C.class.isAnnotationPresent(A.class)){A ann = (A)C.class.getAnnotation(A.class); sop(ann.color());//使用sop(ann.value());//使用sop()}}
---------------------- ASP.Net+Android+IOS開發、.Net培訓、期待與您交流! ----------------------