在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内省机制的更多相关文章

  1. java内省机制Introspector

    访问JavaBean属性的两种方式 1)直接调用bean的setXXX或getXXX方法: 2)通过内省技术访问(java.beans包提供了内省的API),内省技术访问也提供了两种方式: a)通过P ...

  2. 2-java内省机制(Introspector)

    来一个简单的示例吧 package com.my.test; import java.beans.BeanInfo; import java.beans.Introspector; import ja ...

  3. java内省机制及PropertyUtils使用方法

    背景 一般情况下,在Java中你可以通过get方法轻松获取beans中的属性值.但是,当你事先不知道beans的类型或者将要访问或修改的属性名时,该怎么办?Java语言中提供了一些像java.bean ...

  4. Java内省机制

    转自: https://blog.csdn.net/hahalzb/article/details/5972421 1.java内省机制其实通俗的理解为,对自身的进行一个扫描,这个扫描的对象就是我们普 ...

  5. Java的内省机制

    我现在的理解就是,Java的内省机制就是针对JavaBean的,可以获取到类的属性名称,以及属性的Getter和Setter方法,应该是在写框架的时候才会用到内省机制,还有一个地方可以用到内省机制,就 ...

  6. JDK 之 Java Bean 内省机制

    JDK 之 Java Bean 内省机制 JDK 规范目录(https://www.cnblogs.com/binarylei/p/10200503.html) JavaBean 是一种特殊的 Jav ...

  7. 【代码笔记】Java——远程监控、反射、代理、内省机制

    远程控制的基本原理 远程控制(RemoteControl)拥有控制端和被控端双方. 控制方通过请求,取得对远端的操作,实现远端的事件回放功能,同时,应该看得到远端桌面的画面.而被控方必须在建立Serv ...

  8. 内省机制(操作javaBean的信息)

    内省机制(操作javaBean的信息) ----是不是联想到了反射机制了哈,这两者有什么区别呢? 1.内省机制和反射机制的联系 ■ 其实内省机制也是通过反射来实现的,而反射是对一切类都适合去动态获取类 ...

  9. (反射+内省机制的运用)简单模拟spring IoC容器的操作

    简单模拟spring IoC容器的操作[管理对象的创建.管理对象的依赖关系,例如属性设置] 实体类Hello package com.shan.hello; public class Hello { ...

随机推荐

  1. Android7.0手机程序保活(附源码下载)

    项目地址,求starhttps://github.com/979451341/AppAlive 本人在学习音视频时无意发现的黑科技,发现在使用AudioTrack播放音乐时,使用手机的一键清理发现程序 ...

  2. Python *Mix_w5

    1. 字典dict dict  用{}来表示 ,键值对数据{key:value}  key具有唯一性 键:都必须是可哈希的,除了列表,不可变的数据类型都可以当做字典中的键 值  没有任何限制 2. 字 ...

  3. <文档学习>AirSim/using_car.md Choosing Your Vehicle: Car or Multirotor

    如何在AirSim中使用汽车 默认情况下,AirSim中使用的车型为多转子multirotor. 如果你想使用汽车,那么只需在你的settings.json(https://github.com/Mi ...

  4. LeetCode 81 搜索旋转排序数组II

    题目: 假设按照升序排序的数组在预先未知的某个点上进行了旋转. ( 例如,数组 [0,0,1,2,2,5,6] 可能变为 [2,5,6,0,0,1,2] ). 编写一个函数来判断给定的目标值是否存在于 ...

  5. 5.使用std的迭代器访问并修改图像

    void Test_ColorReduceByIterator() { Mat g_srcImage=imread("D:\\OpenCV Projects\\OpenCV_Test_Ima ...

  6. tcl中数字加减的怪异现象

    今天做一个数字转换的测试,发现一个比较怪异的错误: 这样子不能直接处理字符串了. 在编译器中进行处理: 发现除了8和9,其他的字符前面有0的话都可以! 所以需要对数字小于10的数进行屏蔽,或者对09  ...

  7. Javascript中的this指向。

    一.JavaScript中的函数 在了解this指向之前,要先弄明白函数执行时它的执行环境是如何创建的,这样可以更清楚的去理解JavaScript中的this指向. function fn(x,y,n ...

  8. VUE开发SPA之微信授权登录

    SPA单页应用中微信授权登录的一点思路 单页应用应该如何解决微信授权登录的尴尬跳转?后退无法返回?主要遇到的问题就是 先进入单页应用,一边渲染页面一边判断用户有没有登录,当判断到没有登录时异步数据请求 ...

  9. SpringBoot配置SSL证书支持

    Spring Boot配置ssl证书 一.申请SSL证书 在各大云服务商都可以申请到SSL官方证书. 我这里是在阿里云上申请的,申请后下载,解压.如图:  二.用JDK中keytool是一个证书管理工 ...

  10. Linux下安装oracle的步骤和一些问题

    今天在Linux64位系统安装oracle数据库,折腾了一天,终于搞定了,现在把安装步骤梳理下,防止以后忘记:    (以下内容来自http://blog.163.com/junwu_lb/blog/ ...