java 内省学习笔记
学习代码
/*** 内省学习* 概念:* 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 内省学习笔记相关推荐
- Java NIO 学习笔记(三)----Selector
目录: Java NIO 学习笔记(一)----概述,Channel/Buffer Java NIO 学习笔记(二)----聚集和分散,通道到通道 Java NIO 学习笔记(三)----Select ...
- 可能是最全面的 Java G1学习笔记
转载自 可能是最全面的 Java G1学习笔记 引子 最近遇到很多朋友过来咨询G1调优的问题,我自己去年有专门学过一次G1,但是当时只是看了个皮毛,因此自己也有不少问题.总体来讲,对于G1我有几个疑惑 ...
- 深入浅出 Java CMS 学习笔记
转载自 深入浅出 Java CMS 学习笔记 引子 带着问题去学习一个东西,才会有目标感,我先把一直以来自己对CMS的一些疑惑罗列了下,希望这篇学习笔记能解决掉这些疑惑,希望也能对你有所帮助. 1. ...
- Java NIO学习笔记之图解ByteBuffer
转载自 Java NIO学习笔记之图解ByteBuffer ByteBuffer前前后后看过好几次了,实际使用也用了一些,总觉得条理不够清晰. <程序员的思维修炼>一本书讲过,主动学习,要 ...
- 转载:mongoDB java驱动学习笔记
http://www.blogjava.net/watchzerg/archive/2012/09/22/388346.html mongoDB java驱动学习笔记 指定新mongo实例: Mong ...
- 2019年Java Web学习笔记目录
Java Web学习笔记目录 1.Java Web学习笔记01:动态网站初体验 2.Java Web学习笔记02:在Intellij里创建Web项目 3.Java Web学习笔记03:JSP元素 4. ...
- 【Java基础学习笔记】- Day11 - 第四章 引用类型用法总结
Java基础学习笔记 - Day11 - 第四章 引用类型用法总结 Java基础学习笔记 - Day11 - 第四章 引用类型用法总结 4.1 class作为成员变量 4.2 interface作为成 ...
- Java 虚拟机学习笔记 | 类加载过程和对象的创建流程
前言 创建对象是 Java 语言绕不开的话题,那么对象是如何创建出来的呢?我们今天就来聊一聊.对象创建第一步就是检查类是否加载,而类的加载又牵扯到类的加载过程.如果单说对象的创建而绕开类的加载过程,感 ...
- Java中大数据数组,Java基础学习笔记之数组详解
摘要:这篇Java开发技术栏目下的"Java基础学习笔记之数组详解",介绍的技术点是"java基础学习笔记.基础学习笔记.Java基础.数组详解.学习笔记.Java&qu ...
最新文章
- MSE病毒库离线更新包
- viewDidLoad, viewWillDisappear, viewWillAppear等区别及各自的加载顺序
- DL之R-FCN:R-FCN算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
- 石板切割问题c语言_天长井盖切割机切圆机市政窨井盖切圆机
- android novate乱码,Android RxJava+Retrofit2+RxBinding
- P3796 【模板】AC自动机(加强版)
- php如何与数据库连接,PHP文章如何和数据库连接(1)
- 2014年考研英语一完型填空知识点
- SQL存储过程的导入导出
- google 确定某点海拔高_一份“高投资回报率”的用户体验度量方法指南
- tomcat和java安装,JavaWeb-Tomcat下载和安装
- PHP中的异常和错误(转载)
- Struts2配置国际化文件
- 无法启动iis express web 服务器
- 华为鸿蒙鲲鹏麒麟凌霄,华为麒麟、凌霄、鸿鹄三大芯片有什么区别?
- MapReduce的Reducer类
- EfficientNet与EfficientDet的详解
- JavaScript深入浅出(进阶)
- Netty快速学习1-基础知识回顾
- 小程序转发二维码携带参数不生效的问题
热门文章
- Modeling and Analyzing the Influence of Chunk Size Variation on Bitrate Adaptation in DASH 名字解释0728
- makefile深度学习(一个工程实例来学习 Makefile)
- Docker 入门使用 (二)
- HUE Schedule 定时调度 - 启动时间设置问题(执行次数过多,时区问题)
- cache 访问延迟背后的计算机原理
- 实践分享丨构建云上私有池(虚拟IDC)的5种方案详解
- 优化搜索排序结果从而“ 提升CTR、CVR业务指标”
- 【CDN】最近,你的APP崩了吗?
- 赠书 | SkyWalking 观测 Service Mesh 技术大公开
- 不少人暗搓搓的准备春招了,我有一些好东东和招聘信息给你