内省对象 用的少,被BeanUtils代替
|
类 |
描述 |
|
BeanInfo |
对JavaBean进行描述的接口 |
|
Introspector |
描述所有的JavaBean的成员类 |
|
PropertyDescriptor |
描述的是JavaBean的属性类 |
shape.java
package reflect;
public class Shape {
private int x=4;
int y;
protected int z;
public int h;
public Shape() {
}
public Shape(int x, Integer y) {
super();
this.x = x;
this.y = y;
}
public Shape(int x, int y, int z, int h) {
super();
this.x = x;
this.y = y;
this.z = z;
this.h = h;
}
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
public int getZ() {
return z;
}
public void setZ(int z) {
this.z = z;
}
public int getH() {
return h;
}
public void setH(int h) {
this.h = h;
}
@Override
public String toString() {
return "Shape [x=" + x + ", y=" + y + ", z=" + z + ", h=" + h
+ ", getX()=" + getX() + ", getY()=" + getY() + ", getZ()="
+ getZ() + ", getH()=" + getH() + ", getClass()=" + getClass()
+ ", hashCode()=" + hashCode() + ", toString()="
+ super.toString() + "]";
}
}
Shape shape=new Shape();
BeanInfo beaninfo=Introspector.getBeanInfo(Shape.class);
PropertyDescriptor []pds=beaninfo.getPropertyDescriptors();
//返回5个,其中还有一个是Object中的 getClass()和setClass(), 它是根据 getXxx和setXxx找的
System.out.println(pds.length);
PropertyDescriptor pd = pds[1]; //数组下标 按照字典顺序 第一个是 class、h、x、y、z
System.out.println(pd.getName());
Method setMethod=pd.getWriteMethod();
System.out.println(setMethod.getName());
setMethod.invoke(shape, 33);
System.out.println(pds[1].getReadMethod().invoke(shape,null));
结果:
5
h
setH
33
内省对象 用的少,被BeanUtils代替的更多相关文章
- 对象拷贝类PropertyUtils,BeanUtils,BeanCopier的技术沉淀
功能简介 对象拷贝的应用现状简介: 业务系统中经常需要两个对象进行属性的拷贝,不能否认逐个的对象拷贝是最快速最安全的做法,但是当数据对象的属性字段数量超过程序员的容忍的程度,代码因此变得臃肿不堪,使用 ...
- spring BeanUtils 工具实现对象之间的copy
一般我们会开发中会遇到返回用户信息的时候,不需要返回密码或者其他参数,这时候我们需要重新定义一个VO类去除不需要的参数,将原对象copy到VO类中 使用spring的BeanUtils可以实现对象的c ...
- 两个对象值转换的方法(BeanUtils.copyProperties与JSONObject.parseObject对比)
将源对象赋值到目标对象方法: 方法一:BeanUtils.copyProperties(源对象, 目标对象); //org.springframework.beans.BeanUtils 方法二:目标 ...
- java 反射,注解,泛型,内省(高级知识点)
Java反射 1.Java反射是Java被视为动态(或准动态)语言的一个关键性质.这个机制允许程序在运行时透过Reflection APIs 取得任何一个已知名称的class的内部信息, 包括 ...
- Java高新技术 JavaBean内省
Java高新技术 JavaBean内省 知识概要: (1)了解JavaBean内省 (2)JavaBean的简单内省操作 ...
- Java内省机制
转自: https://blog.csdn.net/hahalzb/article/details/5972421 1.java内省机制其实通俗的理解为,对自身的进行一个扫描,这个扫描的对象就是我们普 ...
- JavaBean定义、JSP中使用以及内省操作
Apache commons 一系列的开源工具室非常值得学习的实现. 一 JavaBean定义 JavaBean是一种可重复使用.且跨平台的软件组件.JavaBean可分为两种:一种是 ...
- JavaBean内省与BeanInfo
Java的BeanInfo在工作中并不怎么用到,我也是在学习spring源码的时候,发现SpringBoot启动时候会设置一个属叫"spring.beaninfo.ignore", ...
- java jdbc的优化之BeanUtils组件
1. BeanUtils组件 1.1 简介 程序中对javabean的操作很频繁, 所以apache提供了一套开源的api,方便对javabean的操作!即BeanUtils组件. BeanUtils ...
随机推荐
- Java获取电脑IP、MAC、各种版本
Java代码获取电脑IP.MAC.各种版本 package com.rapoo.middle.action; import java.io.BufferedReader; import java.io ...
- jQuery.merge与concat的区别
示例如下: s1="123"; s2="145"; s3 = $.merge(s1,s2);//s3="123",字符串s1 s2不变,默认 ...
- poj 1469 COURSES 题解
COURSES Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 21515 Accepted: 8455 Descript ...
- 【BZOJ】【3083】遥远的国度
树链剖分/dfs序 其实过了[BZOJ][4034][HAOI2015]T2以后就好搞了…… 链修改+子树查询+换根 其实静态树的换根直接树链剖分就可以搞了…… 因为其实只有一样变了:子树 如果roo ...
- Octave下操作CH341
#include <octave/oct.h> #include <windows.h> #include <cstdint> #include <fstre ...
- 原创BULLET物理的DEMO
原创BULLET物理的DEMO 按空格和0,1,2,3,4,5,6会发射不同的刚体. 具体的使用说明: 鼠标右键按下并拖动 旋转视角WSAD ...
- 第一章 HttpClient的使用
1.http协议(这一块儿有时间的话会做记录) 2.常用的两种RPC方式 基于http协议:HttpClient和JDK自己的Http操作类 基于TCP或UDP协议:mina2和netty(这一部分以 ...
- [leetcode]Remove Nth Node From End of List @ Python
原题地址:http://oj.leetcode.com/problems/remove-nth-node-from-end-of-list/ 题意: Given a linked list, remo ...
- angular之interceptors拦截器
<!DOCTYPE html> <html ng-app="nickApp"> <head> <meta charset="UT ...
- IOS info.plist配置文件
创建ios程序时,系统会自动生成一个info.plist文件,它是一个必不可少的文件,因为在这个文件中,存放是应用程序的配置信息,比如本地化语言.版本号.软件名称等,当然,我们也可以在项目的属性中进行 ...