java 内省源码_java 内省
用内省来操作Bean会给程序带来很大的便利,特别是在很大的实体对象的时候,在其属性很多的时候要为其赋值的时候,
package com.bean;
public class User {
private String uid;
private String userName;
private String userPass;
private String age;
private String sex;
public User(){}
public String getUid() {
return uid;
}
public void setUid(String uid) {
this.uid = uid;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPass() {
return userPass;
}
public void setUserPass(String userPass) {
this.userPass = userPass;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public User(String uid, String userName, String userPass, String age,
String sex) {
super();
this.uid = uid;
this.userName = userName;
this.userPass = userPass;
this.age = age;
this.sex = sex;
}
@Override
public String toString() {
return "User [uid=" + uid + ", userName=" + userName + ", userPass="
+ userPass + ", age=" + age + ", sex=" + sex + "]";
}
}
package com.bean;
import java.beans.BeanInfo;
import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.lang.reflect.InvocationTargetException;
public class beanUtils {
/**
* java内省
* @param args
* @throws IntrospectionException
* @throws InvocationTargetException
* @throws IllegalArgumentException
* @throws IllegalAccessException
*/
public static void main(String[] args) throws IntrospectionException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
BeanInfo beanInfo = Introspector.getBeanInfo(User.class, Object.class);
PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors();
User user = new User();
for(PropertyDescriptor pd : pds){
System.out.println(pd.getName());
}
PropertyDescriptor pd = new PropertyDescriptor("age", User.class);
pd.getWriteMethod().invoke(user, "22");
System.out.println(pd.getReadMethod().invoke(user));
}
}
age
sex
uid
userName
userPass
22
java 内省源码_java 内省相关推荐
- java商城源码_java 多商户商城系统源码分享
三勾商城多商户是开发友好的微信小程序商城,框架支持SAAS,支持发布 iOS + Android + 公众号 + H5 + 各种小程序(微信/支付宝/百度/头条/QQ/钉钉/淘宝)等多个平台,不可多得 ...
- java验证码源码_Java通用验证码程序及应用示例(提供源码下载)
评论 # re: Java通用验证码程序及应用示例(提供源码下载) 2009-11-27 17:09 零全零美 多谢博主写出这么好的总结,如果能加上汉字验证码,会更完美! 回复 更多评论 # re ...
- java hashset 源码_Java集合源码分析-HashSet和LinkedHashSet
前两篇文章分别分析了Java的ArrayList和LinkedList实现原理,这篇文章分析下HashSet和LinkedHashSet的源码.重点讲解HashSet,因为LinkedHashSet是 ...
- java linkedlist源码_Java集合之LinkedList源码分析
一.LinkedList简介 LinkedList是一种可以在任何位置进行高效地插入和移除操作的有序序列,它是基于双向链表实现的. ps:这里有一个问题,就是关于实现LinkedList的数据结构是否 ...
- java queue源码_java源码解读--queue
queue接口特点:可以模拟队列行为,即"先进先出". 接口结构 queue接口继承了Collection接口,并增加了一些新方法 1 2 3 4 5 6 7 8 9 10 11 ...
- java selector 源码_Java NIO核心组件-Selector和Channel
昨天我们介绍了一下SelectorProvider和IO multiplexing.特别是IO multiplexing中的epoll系统调用,是Linux版本的Java的NIO的核心实现. 那今天我 ...
- java join 源码_java并发:join源码分析
join join join是Thread方法,它的作用是A线程中子线程B在运行之后调用了B.join(),A线程会阻塞直至B线程执行结束 join源码(只有继承Thread类才能使用) 基于open ...
- java地图源码_Java集合源码分析(四)HashMap
一.HashMap简介 1.1.HashMap概述 HashMap是基于哈希表的Map接口实现的,它存储的是内容是键值对映射.此类不保证映射的顺序,假定哈希函数将元素适当的分布在各桶之间,可为基本操作 ...
- java 数组 源码_Java数组转List的三种方式及对比
来源:https://s.yam.com/6wu6n 前言: 本文介绍Java中数组转为List三种情况的优劣对比,以及应用场景的对比,以及程序员常犯的类型转换错误原因解析. 一.最常见方式(未必最佳 ...
最新文章
- 台式电脑打不开计算机c盘,电脑电脑C盘打不开怎么办(计算机应用范文)
- SAP S/4HANA生产订单释放后自动同步到MES系统
- Html5 冒泡排序演示
- 笨办法学C 练习45:一个简单的TCP/IP客户端
- 信息学奥赛C++语言: 数字三角形
- Linux 下安装nodejs
- java构造方法可以是私有的吗_Java中的构造函数可以私有吗?
- 快慢指针在数组中的应用
- python paramiko包 ssh报错No existing session 调试记录
- 计算机技术数字影音,技能大赛数字影音后期制作技术赛项规程.pdf
- Zotero使用之自定义参考文献格式
- Si24R2F+超低功耗高性能2.4GHz无线射频NTC测温单发射芯片 兼容Si24R2E
- C++程序设计图书信息管理系统(页面)
- iOS安全之【禁止网络代理】(防抓包) | 蓄力计划
- 是时候复习一下响应式设计了
- 云原生--k8s基础管理命令(二)
- USACO Training Section 3.2 Feed Ratios
- QT5 ubuntu虚拟机下远程连接AGX或arm嵌入式开发板
- macOS Ventura 13.0 (22A380) Boot ISO 原版可引导镜像
- 宫崎骏用动漫教给我们的人生哲理,每一句都能说到心里[转]