`
Longmanfei
  • 浏览: 48111 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

究竟是内省还是内省

阅读更多

 中国文化之博大精深之内省还是内省,究竟他是读(xing)还是(sheng)呢,通过百度引擎貌似晓得,他是读(xing)。

 下面我们就对内省做一下简单介绍:

 

  • 内省是java语言对bean类属性、事件的一种处理方法
  • 为什么要学内省?开发框架时,经常需要使用java对象的属性来封装程序的数据,每次都使用反射技术完成此类操作过于麻烦,所以sun公司开发了一套API,专门用于操作java对象的属性。
  • 内省访问JavaBean属性的两种方式:
  1. 通过PropertyDescriptor类操作Bean的属性
  2. 通过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());

	}
  •  bean类
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";
    }
}

 

 

1
3
分享到:
评论

相关推荐

    java内省思维导图

    特别详细的java内省思维导图,全方面介绍java内省的功能以及用法用处。

    用反射和内省技术实现简单SpringIOC

    本篇文章将深入探讨如何利用反射和内省技术来实现一个简单的Spring IOC。首先,我们来理解什么是反射和内省。 反射是Java提供的一种强大的动态类型机制,它允许程序在运行时检查类的信息,如类名、属性、方法等,并...

    java ioc,aop实现(内省),仿spring功能实现.

    在这个主题中,我们将深入理解这两个概念,并尝试在没有使用Spring框架的情况下,通过内省(Introspection)技术来实现类似的功能。 首先,让我们解释一下IOC。在传统的编程中,对象之间存在着紧密的依赖关系,通常...

    内省所需jar包

    内省(Introspection)是Java编程语言中的一个重要特性,它允许程序在运行时检查对象的属性和方法,以及类的信息。在Java中,内省主要用于动态操作对象,特别是那些在设计时没有完全预知其行为的对象。内省机制使得...

    小议布赖恩·温的公众理解科学理论研究内省模型.doc

    【布赖恩·温的公众理解科学理论研究内省模型】 布赖恩·温(Brian Wynne)是一位在英国公众理解科学理论领域有着深远影响的学者。他的理论研究主要集中在批判传统的“缺失模型”(deficit model)并提出“内省模型...

    PHP重构和内省工具

    内省是程序自我检查和理解自身结构的能力。在PHP中,内省技术允许开发者在运行时检查类、对象、函数等元素,获取它们的信息,如属性、方法、常量等。这在调试、测试和动态生成代码时尤其有用。PHP内省工具往往提供了...

    JavaBean及内省文档

    内省是 Java 提供的一种机制,用于动态地获取对象的属性信息。通过使用 `java.beans.Introspector` 类,可以在运行时发现 JavaBean 的属性并进行操作。 在 J2EE 应用中,内省机制常用于框架自动识别 JavaBean 的...

    06-内省.xmind

    内省机制

    JAVA的内省机制(introspector)与反射机制(reflection).docx

    通过这些 API,可以使开发者不需要了解某个规则(但最好还是要搞清楚),这些 API 存放于包 java.beans 中。例如,类 A 中有属性 name,我们可以通过 getName、setName 来得到其值或者设置新的值。通过 getName/set...

    Java 内省(Introspector)深入理解

    Java内省(Introspector)是Java语言提供的一种机制,用于在运行时分析Java对象的属性、方法和事件。这个特性对于开发人员来说非常有用,因为它允许程序动态地检查和修改对象的状态,而不必了解对象的具体实现细节。...

    Java中的内省与反射.doc

    内省是Java为Bean类提供的对属性和事件的默认处理机制。Bean类通常遵循一定的命名规范,如属性名为 `name`,则对应的getter和setter方法分别为 `getName()` 和 `setName()`。Java提供了一系列API来帮助开发者方便地...

    Java反射与内省-PPT

    Java反射与内省是Java编程语言中的核心特性,它们为开发者提供了强大的能力,可以在运行时检查和操作类、接口、对象及其属性。本PPT深入探讨了这些概念,旨在帮助开发者充分利用Java平台的灵活性。 首先,Java反射...

    Introspected可序列化数组和JSON友好对象的内省

    内省允许开发者检查、验证、修改甚至创建新的数据结构。 ### 可序列化数组 可序列化数组是一种能够转换为字符串或JSON格式的数组,以便在网络间传输或存储。JavaScript中的`JSON.stringify()`方法是将JavaScript...

    浅谈初中思想品德教学中的启迪与内省

    内省是道德教育的另一重要环节。教师应设计内省目标,结合课程内容和学生需求,引导学生反思自己的行为和观念。内省可以通过案例分析,如分析课本中的道德故事,引导学生从不同角度思考,体会故事背后的道德含义。...

    4.9反射内省.txt.xmind

    4.9反射内省.txt.xmind

    cpp-returntoabort使用代码内省来防止堆栈崩溃

    代码内省是指程序在运行时检查和分析自身的能力,这包括了解函数调用关系、变量状态等。在C/C++中,我们可以利用运行时类型信息(RTTI)、调试信息或者其他自定义的跟踪机制来实现内省。 `return-to-abort`的概念是...

    酷炫javaweb后台系统适合初学者【里面有封装 反射内省等】

    在这个"酷炫javaweb后台系统"中,包含了一些核心的JavaWeb技术和编程理念,如封装、反射和内省等。这些概念是Java编程的重要组成部分,对于理解和构建高效的应用程序至关重要。 首先,让我们来探讨一下"封装"。封装...

    Go-Container内省(Introspection)工具能找出正在使用的容器运行时以及可用的功能

    通过运行这个工具,用户可以得知系统上是Docker、containerd、CRI-O还是其他运行时在管理容器,并了解这些运行时提供的功能。这在多租户环境中尤其有用,因为不同的运行时可能有不同的特性和行为。 使用`...

    java反射全解(反射原理+反射API详解+反射与数组+反射与泛型+反射源码与性能开销+反射优缺点+反射与内省)

    java 反射机制全解 java 反射机制是 Java 语言中的一种动态获取信息和调用对象方法的技术...内省是 Java 语言中的一种机制,用于获取对象的信息和调用对象的方法。反射机制可以动态地获取内省的信息和调用内省的方法。

    论文研究-虚拟机内省技术研究 .pdf

    虚拟机内省技术研究,杨先强,双锴,随着云计算的流行,虚拟机内省(Virtual Machine Introspection, VMI)技术及工具逐渐被用来监控IaaS云中虚拟机的行为。在这些技术的帮助下,�

Global site tag (gtag.js) - Google Analytics