01-Introspector内省机制
在java领域编程中,内省机制相当的不错,可以省去我们程序员很多的不必要的代码
比如说:在jdbc工具类 我们可以将ResultSet结果集待到 javabean对象中
将http请求报文的数据 转换到一个 javabacn对象当中去 这样子可以省去我们很多的 request.getparameter('name') request.getparameter("password")
还有理解各种持久框架 都是用到了内省机制编程 很重要,很重要,很重要
java内省机制核心类是 Introspector
来一个示例吧!
先写一个用户Bean类
package com.oa.domain; import lombok.Data; /**
* 注明:我这里使用了 lombok工具来自动生成 getter/setter方法
* 如果你没有配置,则自己手动写 getter/setter方法吧!!!
* @author Administrator
*
*/
@Data
public class User { private Integer id; //用户Id
private String userName; //用户名
private String password; //密码 }
使用内省机制获取所有的属性
package com.oa.test; import java.beans.BeanInfo;
import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.beans.PropertyDescriptor; import com.oa.domain.User; public class Demo1 { /**
* 刘诗华
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
//获取User Bean字节码
BeanInfo beanInfo = Introspector.getBeanInfo(User.class);
//获取所有的属性集合
PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors(); for (PropertyDescriptor pd : propertyDescriptors) {
System.out.println("属性名:"+pd.getName());
} // 打印结果如下显示
// 属性名:class class是继承 extends Object类上面的属性
// 属性名:id
// 属性名:password
// 属性名:userName
} }
注意:如果我们只想要 User类中的所有属性 那我们只需要在获取的时候加上参数 Introspector.getBeanInfo(User.class,Object.class);
//获取User Bean字节码
BeanInfo beanInfo = Introspector.getBeanInfo(User.class,Object.class);
//获取所有的属性集合
PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors(); for (PropertyDescriptor pd : propertyDescriptors) {
System.out.println("属性名:"+pd.getName());
}
属性名:id
属性名:password
属性名:userName
01-Introspector内省机制的更多相关文章
- java内省机制Introspector
访问JavaBean属性的两种方式 1)直接调用bean的setXXX或getXXX方法: 2)通过内省技术访问(java.beans包提供了内省的API),内省技术访问也提供了两种方式: a)通过P ...
- 2-java内省机制(Introspector)
来一个简单的示例吧 package com.my.test; import java.beans.BeanInfo; import java.beans.Introspector; import ja ...
- java内省机制及PropertyUtils使用方法
背景 一般情况下,在Java中你可以通过get方法轻松获取beans中的属性值.但是,当你事先不知道beans的类型或者将要访问或修改的属性名时,该怎么办?Java语言中提供了一些像java.bean ...
- Java内省机制
转自: https://blog.csdn.net/hahalzb/article/details/5972421 1.java内省机制其实通俗的理解为,对自身的进行一个扫描,这个扫描的对象就是我们普 ...
- Java的内省机制
我现在的理解就是,Java的内省机制就是针对JavaBean的,可以获取到类的属性名称,以及属性的Getter和Setter方法,应该是在写框架的时候才会用到内省机制,还有一个地方可以用到内省机制,就 ...
- JDK 之 Java Bean 内省机制
JDK 之 Java Bean 内省机制 JDK 规范目录(https://www.cnblogs.com/binarylei/p/10200503.html) JavaBean 是一种特殊的 Jav ...
- 【代码笔记】Java——远程监控、反射、代理、内省机制
远程控制的基本原理 远程控制(RemoteControl)拥有控制端和被控端双方. 控制方通过请求,取得对远端的操作,实现远端的事件回放功能,同时,应该看得到远端桌面的画面.而被控方必须在建立Serv ...
- 内省机制(操作javaBean的信息)
内省机制(操作javaBean的信息) ----是不是联想到了反射机制了哈,这两者有什么区别呢? 1.内省机制和反射机制的联系 ■ 其实内省机制也是通过反射来实现的,而反射是对一切类都适合去动态获取类 ...
- (反射+内省机制的运用)简单模拟spring IoC容器的操作
简单模拟spring IoC容器的操作[管理对象的创建.管理对象的依赖关系,例如属性设置] 实体类Hello package com.shan.hello; public class Hello { ...
随机推荐
- <文档学习>AirSim/using_car.md Choosing Your Vehicle: Car or Multirotor
如何在AirSim中使用汽车 默认情况下,AirSim中使用的车型为多转子multirotor. 如果你想使用汽车,那么只需在你的settings.json(https://github.com/Mi ...
- js计算时间差
<!doctype html> <html lang="en"> <head> <meta http-equiv="Conten ...
- 二十五. Python基础(25)--模块和包
二十五. Python基础(25)--模块和包 ● 知识框架 ● 模块的属性__name__ # my_module.py def fun1(): print("Hello& ...
- Centos7安装xenserver tools
mount /dev/cdrom /mnt [root@192 ~]# mount /dev/cdrom /mntmount: /dev/sr0 写保护,将以只读方式挂载[root@192 ~]# c ...
- ui自动化:python+appium----环境搭建
前言: appium可以说是app最火的一个自动化框架,它的主要优势是支持android和ios,另外脚本支持java和python.以下为python+appium的安装教程... 环境准备... ...
- UI自动化selenium
1.什么是UI自动化?模拟人用代码的方式去操作页面2.为什么要做UI自动化?后期迭代的时候,老功能比较多,人工维护成本较大,重复性工作较多,这个时候就考虑因为UI自动化3.什么时候做UI自动化?项目稳 ...
- TestLink测试管理工具的使用说明
1. 创建项目: 主页左边的列表栏有 “Test Project management”的菜单,子菜单中有 “ create new test project”,通过它可以创建新的测试项目. 同时,菜 ...
- python day 25--正则表达式
一.字符组 1.[0-9]表示匹配0-9中的数字 2.[a-z]表示匹配a-z之间的字母 3.[A-Z]表示匹配大写的字母 4.[0-9a-zA-Z]匹配所有字母数字 二.元字符 1.\d 匹配任意数 ...
- Redis学习第六课:Redis ZSet类型及操作
Sorted set是set的一个升级版本,它在set的基础上增加了一个顺序属性,这一属性在添加修改元素时候可以指定,每次指定后,zset会自动重新按新的值调整顺序.可以理解为有两列字段的数据表,一列 ...
- jQuery-2.DOM---创建节点及节点属性
DOM创建节点及节点属性 通过JavaScript可以很方便的获取DOM节点,从而进行一系列的DOM操作.但实际上一般开发者都习惯性的先定义好HTML结构,但这样就非常不灵活了. 试想下这样的情况:如 ...