通过反射获得对象的属性、属性值、属性类型

阳光穿透心脏的1/2处 2023-03-12 09:24 79阅读 0赞
  1. public class UserFanShe {
  2. public static void main(String[] args) {
  3. User user = new User();
  4. user.setAge(20);
  5. user.setName("张三");
  6. TestFanShe(user);
  7. // 反射后的值
  8. System.out.println("反射后的name:"+user.getName() + ";反射后的age:" + user.getAge());
  9. }
  10. public static <T> void TestFanShe(final T t) {
  11. Field[] fields = t.getClass().getDeclaredFields();
  12. Field field = null;
  13. for(int i =0; i < fields.length ; i ++) {
  14. try {
  15. field = fields[i];
  16. field.setAccessible(true); // 开启访问权限
  17. String val = String.valueOf(field.get(t)); // 拿出属性值
  18. System.out.println("属性名称:" + field.getName() +" ; 值为: " + val);
  19. System.out.println(field.getType());
  20. if(field.getType() == String.class) {
  21. field.set(t,"李四"); // 给属性重新赋值
  22. }
  23. } catch (Exception e) {
  24. e.printStackTrace();
  25. }
  26. }
  27. }
  28. }

发表评论

表情:
评论列表 (有 0 条评论,79人围观)

还没有评论,来说两句吧...

相关阅读