中国文化之博大精深之内省还是内省,究竟他是读(xing)还是(sheng)呢,通过百度引擎貌似晓得,他是读(xing)。
下面我们就对内省做一下简单介绍:
- 内省是java语言对bean类属性、事件的一种处理方法
- 为什么要学内省?开发框架时,经常需要使用java对象的属性来封装程序的数据,每次都使用反射技术完成此类操作过于麻烦,所以sun公司开发了一套API,专门用于操作java对象的属性。
- 内省访问JavaBean属性的两种方式:
- 通过PropertyDescriptor类操作Bean的属性
- 通过Introspector类获得Bean对象的 BeanInfo,然后通过 BeanInfo 来获取属性的描述器( PropertyDescriptor ),通过这个属性描述器就可以获取某个属性对应的 getter/setter 方法,然后通过反射机制来调用这些方法。
/*
* 通过Introspector类获得Bean对象的 BeanInfo, 然后通过 BeanInfo 来获取属性的描述器(
* PropertyDescriptor ) 通过这个属性描述器就可以获取某个属性对应的 getter/setter 方法,
* 然后通过反射机制来调用这些方法。
*/
@Test
public void test() throws IntrospectionException, IllegalArgumentException,
IllegalAccessException, InvocationTargetException {
Student st = new Student();
// 1、通过Introspector类获得Bean对象的 BeanInfo,
BeanInfo entity = Introspector.getBeanInfo(Student.class);
// 2、然后通过 BeanInfo 来获取属性的描述器( PropertyDescriptor )
PropertyDescriptor pdrs[] = entity.getPropertyDescriptors();
// 3、通过这个属性描述器就可以获取某个属性对应的 getter/setter 方法,
for (PropertyDescriptor pd : pdrs) {
// System.out.println(pd.getName());
/*
* System.out.println(pd.getShortDescription());
* System.out.println(pd.getDisplayName());
*/
if (pd.getName().equals("age")) { //age是什么类型?
Method md = pd.getWriteMethod();
md.invoke(st, 12);
}
}
// System.out.println(st.getAge());
}
package cn.csdn.Introspector;
public class Student {
private String name;
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
private String email;
public String getXxx(){
return "Longmanfei";
}
}
分享到:
相关推荐
特别详细的java内省思维导图,全方面介绍java内省的功能以及用法用处。
本篇文章将深入探讨如何利用反射和内省技术来实现一个简单的Spring IOC。首先,我们来理解什么是反射和内省。 反射是Java提供的一种强大的动态类型机制,它允许程序在运行时检查类的信息,如类名、属性、方法等,并...
在这个主题中,我们将深入理解这两个概念,并尝试在没有使用Spring框架的情况下,通过内省(Introspection)技术来实现类似的功能。 首先,让我们解释一下IOC。在传统的编程中,对象之间存在着紧密的依赖关系,通常...
内省(Introspection)是Java编程语言中的一个重要特性,它允许程序在运行时检查对象的属性和方法,以及类的信息。在Java中,内省主要用于动态操作对象,特别是那些在设计时没有完全预知其行为的对象。内省机制使得...
【布赖恩·温的公众理解科学理论研究内省模型】 布赖恩·温(Brian Wynne)是一位在英国公众理解科学理论领域有着深远影响的学者。他的理论研究主要集中在批判传统的“缺失模型”(deficit model)并提出“内省模型...
内省是程序自我检查和理解自身结构的能力。在PHP中,内省技术允许开发者在运行时检查类、对象、函数等元素,获取它们的信息,如属性、方法、常量等。这在调试、测试和动态生成代码时尤其有用。PHP内省工具往往提供了...
内省是 Java 提供的一种机制,用于动态地获取对象的属性信息。通过使用 `java.beans.Introspector` 类,可以在运行时发现 JavaBean 的属性并进行操作。 在 J2EE 应用中,内省机制常用于框架自动识别 JavaBean 的...
内省机制
通过这些 API,可以使开发者不需要了解某个规则(但最好还是要搞清楚),这些 API 存放于包 java.beans 中。例如,类 A 中有属性 name,我们可以通过 getName、setName 来得到其值或者设置新的值。通过 getName/set...
Java内省(Introspector)是Java语言提供的一种机制,用于在运行时分析Java对象的属性、方法和事件。这个特性对于开发人员来说非常有用,因为它允许程序动态地检查和修改对象的状态,而不必了解对象的具体实现细节。...
内省是Java为Bean类提供的对属性和事件的默认处理机制。Bean类通常遵循一定的命名规范,如属性名为 `name`,则对应的getter和setter方法分别为 `getName()` 和 `setName()`。Java提供了一系列API来帮助开发者方便地...
Java反射与内省是Java编程语言中的核心特性,它们为开发者提供了强大的能力,可以在运行时检查和操作类、接口、对象及其属性。本PPT深入探讨了这些概念,旨在帮助开发者充分利用Java平台的灵活性。 首先,Java反射...
内省允许开发者检查、验证、修改甚至创建新的数据结构。 ### 可序列化数组 可序列化数组是一种能够转换为字符串或JSON格式的数组,以便在网络间传输或存储。JavaScript中的`JSON.stringify()`方法是将JavaScript...
内省是道德教育的另一重要环节。教师应设计内省目标,结合课程内容和学生需求,引导学生反思自己的行为和观念。内省可以通过案例分析,如分析课本中的道德故事,引导学生从不同角度思考,体会故事背后的道德含义。...
4.9反射内省.txt.xmind
代码内省是指程序在运行时检查和分析自身的能力,这包括了解函数调用关系、变量状态等。在C/C++中,我们可以利用运行时类型信息(RTTI)、调试信息或者其他自定义的跟踪机制来实现内省。 `return-to-abort`的概念是...
在这个"酷炫javaweb后台系统"中,包含了一些核心的JavaWeb技术和编程理念,如封装、反射和内省等。这些概念是Java编程的重要组成部分,对于理解和构建高效的应用程序至关重要。 首先,让我们来探讨一下"封装"。封装...
通过运行这个工具,用户可以得知系统上是Docker、containerd、CRI-O还是其他运行时在管理容器,并了解这些运行时提供的功能。这在多租户环境中尤其有用,因为不同的运行时可能有不同的特性和行为。 使用`...
java 反射机制全解 java 反射机制是 Java 语言中的一种动态获取信息和调用对象方法的技术...内省是 Java 语言中的一种机制,用于获取对象的信息和调用对象的方法。反射机制可以动态地获取内省的信息和调用内省的方法。
虚拟机内省技术研究,杨先强,双锴,随着云计算的流行,虚拟机内省(Virtual Machine Introspection, VMI)技术及工具逐渐被用来监控IaaS云中虚拟机的行为。在这些技术的帮助下,�