学习代码

/*** 内省学习* 概念:* 1.内省机制通过反射实现* 2.BeanInfo用来暴露一个bean的属性,方法,事件*/@Testpublic void testIntroSpector() throws Exception {/*** 获取bean的所有属性*/BeanInfo info = Introspector.getBeanInfo(Admin.class);PropertyDescriptor[] descriptors = info.getPropertyDescriptors();for (PropertyDescriptor descriptor : descriptors) {System.out.println("成员变量名:" + descriptor.getName());}/*---------------------------------------------------------------------*//*** 操纵bean的属性*/Admin admin = new Admin();PropertyDescriptor dep = new PropertyDescriptor("name", Admin.class);//操纵属性:nameMethod writeMethod = dep.getWriteMethod();//获取name写的对象--setName(String name)writeMethod.invoke(admin, "清风");//执行写操作Method readMethod = dep.getReadMethod();//获取name读的对象--getName()Object readName = readMethod.invoke(admin);//执行读操作System.out.println("读取到name的值:" + readName);/*** 获取属性的类型*/Class<?> type = dep.getPropertyType();//获取成员变量的类型System.out.println(type);String name = dep.getName();//获取操纵的成员变量名System.out.println(name);}/*** BeanUtils工具的使用** @throws Exception*/@Testpublic void testIntroSpector1() throws Exception {Admin admin = new Admin();//为指定的属性赋值BeanUtils.setProperty(admin, "name", "清风");System.out.println(admin.getName());/***DateLocaleConverter 日期和字符串的转换器*/ConvertUtils.register(new DateLocaleConverter(), Date.class);//注册日期类型BeanUtils.setProperty(admin, "birthday", "1997-02-28");SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY-MM-dd");String s = simpleDateFormat.format(admin.getBirthday());//格式化日期System.out.println(s);/*** 通过map集合填充bean*/Map map=new HashMap<>();map.put("id","10086");map.put("name","清风");map.put("password","123456");map.put("birthday","1997-05-20");ConvertUtils.register(new DateLocaleConverter(),Date.class);BeanUtils.populate(admin,map);System.out.println(admin);}

运行结果



三、使用BeanUtils如果是maven项目需要引入依赖:

<dependency><groupId>commons-beanutils</groupId><artifactId>commons-beanutils</artifactId><version>1.9.4</version>
</dependency>

java 内省学习笔记相关推荐

  1. Java NIO 学习笔记(三)----Selector

    目录: Java NIO 学习笔记(一)----概述,Channel/Buffer Java NIO 学习笔记(二)----聚集和分散,通道到通道 Java NIO 学习笔记(三)----Select ...

  2. 可能是最全面的 Java G1学习笔记

    转载自 可能是最全面的 Java G1学习笔记 引子 最近遇到很多朋友过来咨询G1调优的问题,我自己去年有专门学过一次G1,但是当时只是看了个皮毛,因此自己也有不少问题.总体来讲,对于G1我有几个疑惑 ...

  3. 深入浅出 Java CMS 学习笔记

    转载自  深入浅出 Java CMS 学习笔记 引子 带着问题去学习一个东西,才会有目标感,我先把一直以来自己对CMS的一些疑惑罗列了下,希望这篇学习笔记能解决掉这些疑惑,希望也能对你有所帮助. 1. ...

  4. Java NIO学习笔记之图解ByteBuffer

    转载自 Java NIO学习笔记之图解ByteBuffer ByteBuffer前前后后看过好几次了,实际使用也用了一些,总觉得条理不够清晰. <程序员的思维修炼>一本书讲过,主动学习,要 ...

  5. 转载:mongoDB java驱动学习笔记

    http://www.blogjava.net/watchzerg/archive/2012/09/22/388346.html mongoDB java驱动学习笔记 指定新mongo实例: Mong ...

  6. 2019年Java Web学习笔记目录

    Java Web学习笔记目录 1.Java Web学习笔记01:动态网站初体验 2.Java Web学习笔记02:在Intellij里创建Web项目 3.Java Web学习笔记03:JSP元素 4. ...

  7. 【Java基础学习笔记】- Day11 - 第四章 引用类型用法总结

    Java基础学习笔记 - Day11 - 第四章 引用类型用法总结 Java基础学习笔记 - Day11 - 第四章 引用类型用法总结 4.1 class作为成员变量 4.2 interface作为成 ...

  8. Java 虚拟机学习笔记 | 类加载过程和对象的创建流程

    前言 创建对象是 Java 语言绕不开的话题,那么对象是如何创建出来的呢?我们今天就来聊一聊.对象创建第一步就是检查类是否加载,而类的加载又牵扯到类的加载过程.如果单说对象的创建而绕开类的加载过程,感 ...

  9. Java中大数据数组,Java基础学习笔记之数组详解

    摘要:这篇Java开发技术栏目下的"Java基础学习笔记之数组详解",介绍的技术点是"java基础学习笔记.基础学习笔记.Java基础.数组详解.学习笔记.Java&qu ...

最新文章

  1. MSE病毒库离线更新包
  2. viewDidLoad, viewWillDisappear, viewWillAppear等区别及各自的加载顺序
  3. DL之R-FCN:R-FCN算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
  4. 石板切割问题c语言_天长井盖切割机切圆机市政窨井盖切圆机
  5. android novate乱码,Android RxJava+Retrofit2+RxBinding
  6. P3796 【模板】AC自动机(加强版)
  7. php如何与数据库连接,PHP文章如何和数据库连接(1)
  8. 2014年考研英语一完型填空知识点
  9. SQL存储过程的导入导出
  10. google 确定某点海拔高_一份“高投资回报率”的用户体验度量方法指南
  11. tomcat和java安装,JavaWeb-Tomcat下载和安装
  12. PHP中的异常和错误(转载)
  13. Struts2配置国际化文件
  14. 无法启动iis express web 服务器
  15. 华为鸿蒙鲲鹏麒麟凌霄,华为麒麟、凌霄、鸿鹄三大芯片有什么区别?
  16. MapReduce的Reducer类
  17. EfficientNet与EfficientDet的详解
  18. JavaScript深入浅出(进阶)
  19. Netty快速学习1-基础知识回顾
  20. 小程序转发二维码携带参数不生效的问题

热门文章

  1. Modeling and Analyzing the Influence of Chunk Size Variation on Bitrate Adaptation in DASH 名字解释0728
  2. makefile深度学习(一个工程实例来学习 Makefile)
  3. Docker 入门使用 (二)
  4. HUE Schedule 定时调度 - 启动时间设置问题(执行次数过多,时区问题)
  5. cache 访问延迟背后的计算机原理
  6. 实践分享丨构建云上私有池(虚拟IDC)的5种方案详解
  7. 优化搜索排序结果从而“ 提升CTR、CVR业务指标”
  8. 【CDN】最近,你的APP崩了吗?
  9. 赠书 | SkyWalking 观测 Service Mesh 技术大公开
  10. 不少人暗搓搓的准备春招了,我有一些好东东和招聘信息给你