`
Junjiejkl
  • 浏览: 62413 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

内省的使用

阅读更多

针对JavaBean
  什么是JavaBean?(私有的字段/公开的空参构造方法/每个字段存取方法)
  PropertyDescriptor表示:描述哪个字节码对象和该类的属性
  pd.getWriteMethod():相当于setter()方法
  pd.getReadMethod():相当于getter()方法
  BeanInfo表示:某个字节码对象的所有属性的描述
  任务类都会至少有一个class属性

package cn.itcast.javase.introspector;

import java.beans.BeanInfo;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Method;
import org.junit.Test;

public class Demo1 {
	@Test
	public void test1() throws Exception{
		Student s = new Student();
		//描述某个JavaBean的属性描述器
		//参数一:表示描述哪个属性
		//参数二:表示描述哪个类的字节码对象
		PropertyDescriptor pd = new PropertyDescriptor("name",Student.class);
		Method writer = pd.getWriteMethod();
		writer.invoke(s,"jack");
		System.out.println(s.getName());
	}
	@Test
	public void test2() throws Exception{
		//取得JavaBean对象的所有属性描述对象
		BeanInfo bi = Introspector.getBeanInfo(Student.class);
		//取得该JavaBean对象所有属性的集合
		PropertyDescriptor[] pds = bi.getPropertyDescriptors();
		for(PropertyDescriptor pd : pds){
			//显示属性的名称
			System.out.println(pd.getName());
		}
		//结论:属性是含有getXxxxx(),该xxxxx是属性名
	}
}







 

分享到:
评论

相关推荐

    python数据分析2

    内省 使用命令历史 与操作系统交互 软件开发工具 IPython HTML Notebook 利用IPython提高代码开发效率的几点提示 高级IPython功能 致谢 第4章 NumPy基础:数组和矢量计算 NumPy的ndarray:一种多维数组...

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

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

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

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

    内省所需jar包

    - 自动化测试:在测试中,可以使用内省来模拟方法调用,验证对象的状态或行为。 - 框架开发:许多Java框架如Spring,Struts等利用内省和BeanUtils来实现依赖注入和控制反转。 了解和掌握内省、Apache Commons ...

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

    "return-to-abort"是一种应对策略,它利用代码内省(introspection)技术来检测并预防这种类型的崩溃。本文将详细讲解如何利用`return-to-abort`方法来保护程序免受堆栈溢出的影响。 首先,让我们理解什么是代码...

    JavaBean及内省文档

    ### JavaBean 及 内省概述 #### 一、JavaBean 概念 JavaBean 是一种遵循特定编码规范的 Java 类,主要用于封装数据并提供访问这些数据的方法。它被广泛应用于 J2EE 开发中,作为组件化的一部分,使得代码更易于...

    PHP重构和内省工具

    在实际开发中,使用phpactor这样的工具可以显著提高生产力。例如,当需要对大量代码进行一致性更改时,重构工具可以自动替换特定模式,避免手动查找和替换可能导致的错误。此外,通过内省,开发者可以在运行时动态...

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

    在本文中,我们将深入探讨容器内省的概念,Go语言在其中的角色,以及如何使用像`genuinetools/amicontained`这样的工具来获取关于容器的详细信息。 首先,让我们理解什么是容器内省。容器内省(Introspection)是指...

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

    例如,在某个 Bean 中,我们可以使用内省机制来获取某个属性的 getter/setter 方法,然后使用反射机制来调用这些方法。 四、示例代码 下面是一个使用内省机制和反射机制的示例代码: ```java package MyTest; ...

    Java中的内省与反射.doc

    下面是一个简单的示例,演示如何使用内省来获取一个对象的所有属性名称和值: ```java public class IntrospectorDemo { private String name; public String getName() { return name; } public void set...

    Java反射与内省-PPT

    Java反射与内省是Java编程语言中的核心特性,...然而,它们也带来了一些潜在的问题,如性能损耗和安全风险,因此在使用时应谨慎权衡。学习和掌握这些技术将有助于提升你的Java编程能力,更好地应对各种复杂的编程挑战。

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

    ### 使用 introspected-master 在提供的`introspected-master`压缩包中,可能包含了用于实现上述功能的代码库或示例。这个库可能提供了扩展JavaScript内省能力的工具,例如提供更强大的查询、遍历或修改对象结构的...

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

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

    seafile-mxe:帮助在 Ubuntu Linux 上交叉编译 Seafile Client 4.2.4 for Windows 的脚本集

    依赖关系 在 Ubuntu 服务器 14.04LTS 上测试 系统范围的依赖 首先,您需要先准备好您的系统。 以下是系统范围的要求列表: libgsf-1-dev uuid-dev 自动配置 ...使用来自发行版的 msitools-0.93 此

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

    它允许在程序运行时加载、探索以及使用编译期间完全未知的 .class 文件。通过反射机制,可以在运行时判断任意一个对象所属的类、构造任意一个类的对象、判断任意一个类所具有的成员变量和方法、调用任意一个对象的...

    Java内省实例解析

    例如,Struts和Spring框架都大量使用了内省来实现MVC模式中的模型与视图之间的数据交换。通过内省,开发者可以轻松地实现对JavaBean属性的自动化操作,提高代码的可维护性和可扩展性。 总的来说,Java内省提供了一...

    【IT十八掌徐培成】Java基础第25天-03.递归获取所有超类-内省获取所有属性-getter-setter.zip

    递归获取所有超类-内省获取所有属性-getter-setter.zip"这个课程可能涵盖了如何利用Java的递归技术遍历类的继承树,以及通过内省机制动态访问和修改对象的属性,包括使用getter和setter方法。这些都是Java开发者必须...

    Java 内省introspector相关原理代码解析

    Java 内省(Introspection)是Java提供的一种机制,允许程序在运行时检查对象的属性和方法。...然而,内省也有一些缺点,如性能开销较大,因为每次调用都需要反射操作,所以在对性能要求较高的场景下需谨慎使用。

    Django数据库内省工具通过数据表名就可以动态创建一个即时可用的Djangomodels对象

    本篇文章将详细讲解如何利用Django的数据库内省(Introspection)工具,通过已有的数据表名动态创建Django Models对象,以便快速地与数据库进行交互。 首先,Django的数据库内省工具是其ORM(Object-Relational ...

    Objective-C的内省(Introspection)用法小结

    恰当地使用内省可以使面向对象的程序运行更加高效和强壮。也有助于避免错误地进行消息派发、错误地假设对象相等。 下面的部分举例介绍如何在代码中有效地使用NSObject的内省方法。   1、isKindOfClass:Clas

Global site tag (gtag.js) - Google Analytics