内省java_Java中的内省
package com.cn.gbx;
public class Person {
//这里指的是单纯的字段
private String name;
private int age;
//有多少种不同的getter / setter就有多少个属性 这里三个但是还要加上 Object类里面的一个getClass 共四个
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getDetail() {
return name + " : " + age;
}
}
public class DemoTest {
/*
* 通过内省获得bean的所有属性
*/
@Test
public void test1() throws IntrospectionException {
BeanInfo beanInfo = Introspector.getBeanInfo(Person.class);
PropertyDescriptor[] propertyDescriptor = beanInfo.getPropertyDescriptors();
for (PropertyDescriptor p : propertyDescriptor) {
System.out.println(p.getName());
}
}
/*
* 删掉父类的属性
*/
@Test
public void test2() throws IntrospectionException {
BeanInfo beanInfo = Introspector.getBeanInfo(Person.class, Object.class);
PropertyDescriptor[] propertyDescriptor = beanInfo.getPropertyDescriptors();
for (PropertyDescriptor p : propertyDescriptor) {
System.out.println(p.getName());
}
}
/*
* 得到指定属性
*/
@Test
public void test3() throws IntrospectionException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
Person p = new Person();
PropertyDescriptor descriptor = new PropertyDescriptor("name", Person.class);
Method method = descriptor.getWriteMethod();
method.invoke(p, "gbx");
System.out.println("write " + p.getName());
Method method2 = descriptor.getReadMethod();
System.out.println("read " + method2.invoke(p, null));
System.out.println("获得属性的类型 : " + descriptor.getPropertyType());
}
}
内省java_Java中的内省相关推荐
- OC中的内省方法初探
内省(Introspection)是对象揭示自己作为一个运行时对象的详细信息的一种能力.NSObject协议和类定义了很多内省方法,用于查询运行时信息,以便根据对象的特征进行识别. 在iOS开发过程中 ...
- java内省的意思,java内省机制 + 内省是什么 + 内省实现方式 + 和反射的区别
见:https://zhidao.baidu.com/question/434288330.html.http://blog.csdn.net/u014394715/article/details/5 ...
- java的内省有用么_JAVA中的内省使用
以下两段参考: 关于内省的思考 struts2的action(还有struts1的formbean)就是这么实现的. 前台的form标签具有一些属性(在配置文件中知道这个form提交到那个action ...
- java中的内省 (Introspector)
2019独角兽企业重金招聘Python工程师标准>>> 2.JavaBean:>>>>>>>>>>>>> ...
- java 中的内省 introspector
概述 经常需要使用java对象的属性来封装程序的数据,每次都使用反射技术完成此类操作过于麻烦,所以sun公司开发了一套API,专门用于操作java对象的属性. 内省(IntroSpector)是Jav ...
- 内省java_Java内省 – 奇怪的行为
下面的代码是一个很容易重现问题的小例子.所以我有一个类型为String的变量,在其上设置一个默认值.我有3种方法: 吸气剂 >设定者 >方便的方法,将字符串转换为布尔值 内部回调并不返回g ...
- java内省的意思_java内省和反射的区别
展开全部 经过多方面的资料搜集整理,写下了这篇文章,本文主要讲解java的反射和内e68a843231313335323631343130323136353331333363366237省机制,希望对 ...
- java 内省_Java反射与内省
反射 用一句比较白的话来概括,反射就是让你可以通过名称来得到对象(类,属性,方法)的技术. 例如我们可以通过类名来生成一个类的实例:知道了方法名,就可以调用这个方法:知道了属性名就可以访问这个属性的值 ...
- java内省的意思,Java内省机制
内省概述 内省(Introspector)是Java语言对JavaBean类的属性,事件和方法的默认处理方式 例如: 类User中有属性name,那么必定有getName,setName方法,内省就是 ...
最新文章
- 非洲的风能和太阳能真是企业家无与伦比的商机?
- JS双向数据绑定的原理介绍
- windows下mysql的数据备份
- PE文件格式(加密与解密3)(一)
- MyBatis框架学习笔记04:利用MyBatis实现条件查询
- 绕过COM,一个巧妙的思路
- AutoIT: ControlCommand是一个非常重要的指令
- 如何查看mysql默认字符集_如何找出MySQL中的默认服务器字符集?
- FBI 和 NSA 披露俄罗斯国家黑客使用的 Linux 恶意软件
- 离散数学复习--第一章:命题逻辑
- 计算方法 matlab,计算方法及其MATLAB实现
- 红外感应器+arduino+processing+flash 实现麦克风吹波波效果
- java 比较日期大小(方法之一compare to 备忘)
- 线性回归及RANSAC异常值清除算法案例
- 网站技术分析报告之——开心网_转载
- android 手机桌面角标,华为手机设置桌面图标角标提醒的实现
- 有什么比较适合个人日常办公管理的便签软件
- 英语教师计算机研修总结,英语教师个人研修总结范文
- ixgbe网卡驱动 Ⅳ----收发包流程详解
- 系统设计:在线支付系统的需求分析报告