@Test
void contextLoads() {
List list = new ArrayList ();
list.add("aa");
list.add("bb");
list.add("cc");
list.add("dd");
User user=new User();
user.setPassword ( "666" );
Class <? extends User> a = user.getClass ( );
try {
Field u = a.getDeclaredField ( "password" );
u.setAccessible ( true );
try {
String o = (String)u.get ( user );
System.out.println ( "未修改的密码是====="+o +"==========");
} catch (IllegalAccessException e) {
e.printStackTrace ( );
}
try {
u.set ( user,"123" );
String o = (String)u.get ( user );
System.out.println ( "修改后的密码是====="+o +"==========");
} catch (IllegalAccessException e) {
e.printStackTrace ( );
}
// 获取bean信息
BeanInfo beanInfo = null;
try {
beanInfo = Introspector.getBeanInfo(User.class);
} catch (IntrospectionException e) {
e.printStackTrace ( );
}
/* // 获取bean的所有属性列表
PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors ( );
for (PropertyDescriptor p:propertyDescriptors) {
System.out.println ( "+++++++" + p );
}*/
// 获取bean的所有属性列表
PropertyDescriptor[] property = beanInfo.getPropertyDescriptors ( );
for (PropertyDescriptor p:property) {
System.out.println ( "+++++++" + p.getName () );
System.out.println ( "+++++++" + p.getPropertyType () );
System.out.println ( "+++++++" + p.getReadMethod () );
System.out.println ( "+++++++" + p.getWriteMethod () );
Method readMethod = p.getReadMethod ( );
try {
Object o = readMethod.invoke ( user );
System.out.println ( "=======该对象的读方法是"+o );
} catch (IllegalAccessException e) {
e.printStackTrace ( );
} catch (InvocationTargetException e) {
e.printStackTrace ( );
}
}
} catch (NoSuchFieldException e) {
e.printStackTrace ( );
}
}
Java反射
最新推荐文章于 2025-05-11 14:15:46 发布