用内省来操作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 内省相关推荐

  1. java商城源码_java 多商户商城系统源码分享

    三勾商城多商户是开发友好的微信小程序商城,框架支持SAAS,支持发布 iOS + Android + 公众号 + H5 + 各种小程序(微信/支付宝/百度/头条/QQ/钉钉/淘宝)等多个平台,不可多得 ...

  2. java验证码源码_Java通用验证码程序及应用示例(提供源码下载)

    评论 # re: Java通用验证码程序及应用示例(提供源码下载) 2009-11-27 17:09 零全零美 多谢博主写出这么好的总结,如果能加上汉字验证码,会更完美!  回复  更多评论 # re ...

  3. java hashset 源码_Java集合源码分析-HashSet和LinkedHashSet

    前两篇文章分别分析了Java的ArrayList和LinkedList实现原理,这篇文章分析下HashSet和LinkedHashSet的源码.重点讲解HashSet,因为LinkedHashSet是 ...

  4. java linkedlist源码_Java集合之LinkedList源码分析

    一.LinkedList简介 LinkedList是一种可以在任何位置进行高效地插入和移除操作的有序序列,它是基于双向链表实现的. ps:这里有一个问题,就是关于实现LinkedList的数据结构是否 ...

  5. java queue源码_java源码解读--queue

    queue接口特点:可以模拟队列行为,即"先进先出". 接口结构 queue接口继承了Collection接口,并增加了一些新方法 1 2 3 4 5 6 7 8 9 10 11 ...

  6. java selector 源码_Java NIO核心组件-Selector和Channel

    昨天我们介绍了一下SelectorProvider和IO multiplexing.特别是IO multiplexing中的epoll系统调用,是Linux版本的Java的NIO的核心实现. 那今天我 ...

  7. java join 源码_java并发:join源码分析

    join join join是Thread方法,它的作用是A线程中子线程B在运行之后调用了B.join(),A线程会阻塞直至B线程执行结束 join源码(只有继承Thread类才能使用) 基于open ...

  8. java地图源码_Java集合源码分析(四)HashMap

    一.HashMap简介 1.1.HashMap概述 HashMap是基于哈希表的Map接口实现的,它存储的是内容是键值对映射.此类不保证映射的顺序,假定哈希函数将元素适当的分布在各桶之间,可为基本操作 ...

  9. java 数组 源码_Java数组转List的三种方式及对比

    来源:https://s.yam.com/6wu6n 前言: 本文介绍Java中数组转为List三种情况的优劣对比,以及应用场景的对比,以及程序员常犯的类型转换错误原因解析. 一.最常见方式(未必最佳 ...

最新文章

  1. 台式电脑打不开计算机c盘,电脑电脑C盘打不开怎么办(计算机应用范文)
  2. SAP S/4HANA生产订单释放后自动同步到MES系统
  3. Html5 冒泡排序演示
  4. 笨办法学C 练习45:一个简单的TCP/IP客户端
  5. 信息学奥赛C++语言: 数字三角形
  6. Linux 下安装nodejs
  7. java构造方法可以是私有的吗_Java中的构造函数可以私有吗?
  8. 快慢指针在数组中的应用
  9. python paramiko包 ssh报错No existing session 调试记录
  10. 计算机技术数字影音,技能大赛数字影音后期制作技术赛项规程.pdf
  11. Zotero使用之自定义参考文献格式
  12. Si24R2F+超低功耗高性能2.4GHz无线射频NTC测温单发射芯片 兼容Si24R2E
  13. C++程序设计图书信息管理系统(页面)
  14. iOS安全之【禁止网络代理】(防抓包) | 蓄力计划
  15. 是时候复习一下响应式设计了
  16. 云原生--k8s基础管理命令(二)
  17. USACO Training Section 3.2 Feed Ratios
  18. QT5 ubuntu虚拟机下远程连接AGX或arm嵌入式开发板
  19. macOS Ventura 13.0 (22A380) Boot ISO 原版可引导镜像
  20. 宫崎骏用动漫教给我们的人生哲理,每一句都能说到心里[转]

热门文章

  1. 排序模型进阶-FMFTRL
  2. 网页直播英文版上线,跨国企业客户用着很酷哇
  3. Qt图表绘制(QtCharts)-绘制简单的极坐标图[雷达图](11)
  4. sony的故事 第 5 章
  5. php转到网址,php如何实现网址跳转
  6. Android5g手机排名,流畅度排名前五的安卓手机,全都支持5G,第一名无争议
  7. 多核学习、多视图学习、多任务学习和集成学习的区别和联系
  8. 我是如何做到五年间电话不漏接的
  9. 赞美柳树,更赞美柳树精神
  10. Stats Perform成立,将打造成全球领先的体育人工智能与数据公司