java的内省

Java 内省机制 ;;比如:属性名称为name,则有getName方法返回属性name值, setName方法设置name值;注意方法的名称通常是get或 set加上属性名称,并把属性名称的首字母大写;这些方法称为getters/setters;getters必须有返回值没有方法参数;setter值没有返回值,有方法参数;例如下面的例子:符合这些特征的类,被称为;... 阅读详情
     java的反射技术,提供给了开发人员操作成员变量、成员方法和构造函数等等方法。很多时候,常常要用对象的属性来封装数据,反射技术完成这类操作过于繁琐,于是就有了内省的出现,它的作用,就是用来操作对象的属性的,大大减轻代码量。
     首先了解一下什么是JavaBean:
          javaBean其实是一个java类,只是这个类要有一定的规范,其类必须是具体和公共的,并且要具有无参数的构造函数。当然,关于javaBean的规范还有很多,看个例子应该可以很容易明白:
public class Person {

	private String name;
	private int age;
	
	public Person(){}
	
	public Person(String name, int age) {
		this.name = name;
		this.age = age;
	}
	
	public int getAge() {
		return age;
	}
	public String getName() {
		return name;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public void setName(String name) {
		this.name = name;
	}
}

java的内省是用来操作对象属性的,那么,上述的Person类有多哪些属性呢?
name属性  age属性 class属性(这个属性是从Object类继承过来的,Object中有一个getClass()方法)

下面介绍如何通过内省,简单的操作一下Person的属性:
import java.beans.BeanInfo;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Method;

public class IntrospectorTest {

	public static void main(String[] args) throws Exception {
		// test1(); //内省的基本操作
		test2(); // 直接获取某个属性的属性描述器
	}

	// 直接获取某个属性的属性描述器
	private static void test2() throws Exception {
		// 直接获取Person的name属性的属性描述器
		PropertyDescriptor pd = new PropertyDescriptor("name", Person.class);
		// 由属性获得其setName()方法
		Method write = pd.getWriteMethod();
		Person p = new Person();
		// 执行方法
		write.invoke(p, "java");
		// 获得getName()方法
		Method read = pd.getReadMethod();
		String name = (String) read.invoke(p, null);
		System.out.println(name);
	}

	// 内省的基本操作
	private static void test1() throws Exception {
		// 获取Bean信息的封装对象
		BeanInfo info = Introspector.getBeanInfo(Person.class);
		// 下面的这个info不会拿到其继承下来的属性
		// BeanInfo info = Introspector.getBeanInfo(Person.class,Object.class);
		// 得到所有的属性描述器
		PropertyDescriptor[] pds = info.getPropertyDescriptors();
		for (PropertyDescriptor p : pds) {
			// 通过属性描述器得到属性名
			System.out.println(p.getName());
			// 通过属性描述器得到属性类型
			System.out.println(p.getPropertyType());
		}
	}
}


Java 内省(Introspector)深入理解 主要介绍了Java 内省(Introspector)深入理解的相关资料,需要的朋友可以参考下 立即下载

相关推荐

【电驱动】永磁同步电机工作原理及分类

永磁同步电机工作原理及分类

星Yeah 的博客 7324

java内省

在类Person中有属性name,那么我们可以通过getName()和setName()来得到其值或者设置新的值,通过 getName()和setName()来访问name属性,这就是我们以前常用的方式。为了让程序员更好地操作JavaBean的属性,JDK中提供了一套 API 用来访问某个属性的getter和setter方法,这就是内省。内省(Introspector) 是Java 语言对 JavaBean 类属性、事件和方法的一种标准处理方式,它的出现有利于操作对象属性,并且可以有效地减少代码量。 内省

m0_62520968的博客 1543

Claude Code教程(二) | Claude Code 核心信息与使用指南

Claude Code 核心信息与使用指南

qq_20236937的博客 2183

Java内省(Introspector)机制:深入理解与应用

Java内省(Introspection)机制是一种允许开发者在运行时获取和操作对象属性、事件和方法信息的机制。它基于Java的反射(Reflection)API,但更专注于Java Beans的特定规范。Java Beans是一种特殊的Java类,通常用于封装多个属性为一个单一的对象,并提供标准的getter和setter方法来访问这些属性。

码到三十五 1948

TI DSP TMS320F280025 Note1:工程模板Template创建

该方法新建的工程支持寄存器开发,同时也支持库函数开发,新建后移动该工程也不需要重新修改路径,路径使用变量定义,使用方便、移植性能高

weixin_52849254的博客 2302

EMC原理-传导(共模、差模)与辐射(近场、远场)详解

本文深入介绍了电磁兼容(EMC)的基本概念,包括EMI和EMS,以及如何处理传导干扰(共模、差模)和辐射干扰(近场、远场)。详细讨论了近场感应、远场辐射的原理,滤波器和屏蔽技术在抑制噪声信号中的作用。此外,探讨了差模和共模干扰的来源、影响及滤除方法,如使用差模电感、电容和共模线圈。最后,提到了穿心电容在滤除高频噪声中的应用。

让你爱上电路设计 3551

Java 内省

何为 JavaBean ? 一种特殊的类、主要用于传递数据信息、这种类中的方法主要用于访问私有的字段、且方法符合某种命名规则。 JavaBean 的特征 属性都是私有的 存在无参构造方法 私有属性的 getter/setter 方法分别为 getXxx/setXxx getter 方法必须有返回值且无入参、setter 方法必须有入参且无返回值 符合这些特征的类、称为 JavaBean。 JDK 提供了一套 API 用来访问某个属性的 getter/setter 方法、这个就是 Java 内省。 内省与

CoderLi 1148

Deeplabv3+改进1:添加CBAM注意力机制|有效涨点

我们提出卷积块注意力模块(CBAM),这是一种简单而有效的前馈卷积神经网络注意力模块。给定一个中间特征图,我们的模块会依次沿两个独立维度(通道和空间)推断注意力图,然后将注意力图与输入特征图相乘,以实现自适应特征细化。由于 CBAM 是一个轻量级且通用的模块,它可以无缝集成到任何 CNN 架构中,几乎不会增加开销,并且可以与基础 CNN 一起端到端训练。我们通过在 ImageNet-1K、MS COCO 检测和 VOC 2007 检测数据集上进行的大量实验验证了 CBAM。

AIcurator的博客 1691

大多数人不知道的Java知识 - Java内省机制

聆听 沉淀 传播 … 关注微信公众号【Java之言】,助你放弃编程之路! 文章目录一、Introspector 简洁二、BeanInfo 简介三、PropertyDescriptor 简介四、BeanDescriptor 简介五、案例实践 一、Introspector 简洁 官方介绍: The Introspector class provides a standard way for tools to learn about the properties, events, and methods.

陈皮的JavaLib 2137

[AI] 本地部署 Dify 遇到 Internal Error?一文彻底解决密码不一致引发的问题

摘要:Dify本地部署常见InternalError错误主要由配置残留或密码不一致导致,特别是修改.env文件后未同步清除数据库记录。彻底解决方案包括:1)清理Docker数据;2)删除旧配置和数据库;3)还原源代码;4)重建.env文件;5)重新初始化部署。关键提醒:记录部署路径、备份.env文件并妥善保存密码。该错误本质是配置冲突,最有效方法是完全重置而非调试,保持清晰的部署管理可避免多数InternalError问题。(149字)

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 435

深入理解JVM虚拟机第一篇:Java跨平台和字节码以及多语言混合编程

本位描述了Java的跨平台和JVM的跨平台的作用,Java语言的字节码的概念多语言混合编程应用到JVM虚拟机以及Java发展的重大事件。

七叔的博客 1万+

Java反射——内省(Introspector)以及BeanUtils内省框架

讨论内省的前提是需要了解Java中的反射,如果需要了解反射的话,可以点击下方的文章 Java中的反射机制介绍 为什么要学内省? 开发框架时,经常需要使用java对象的属性来封装程序的数据,每次都使用反射技术完成此类操作过于麻烦,所以JDK里提供了一套API,专门用于操作java对象的属性。既然内省是专门用于操作java对象属性的,那首先得搞懂什么是对象的属性 1、什么是java对象的属性呢...

曹举的个人博客 1万+

10天冲刺国自然基金!用这套实战AI提示词指令教程,助你中标率翻倍!亲测DeepSeek和ChatGPT不好用

虽然以上国自然提示词指令经过反复实测,但并不是万能无脑帮你搞定所有,大模型AI的特性是你专业领域能力越强,它的智商表现就会更加强大,通过以上提示词教程的使用,大大提升中标概率是肯定的。还有就是大模型的使用上,不是市面上大家都说好的就一定适用,目前来看,Gemini和Claude的两个模型是非常适合国自然本子的修改的。在使用大模型进行国自然本子撰写修改时,首先是角色的设定,然后是目标和背景的描述,好用的提示词指令都是要经过无数次的实测,比对输出结果后又反复调整,达到最佳的效果状态的提示词指令。

智能AI让学术科研更容易 1245

Java的内省技术

什么是内省 在计算机科学中,内省是指计算机程序在运行时(Run time)检查对象(Object)类型的一种能力,通常也可以称作运行时类型检查。 不应该将内省和反射混淆。相对于内省,反射更进一步,是指计算机程序在运行时(Run time)可以访问、检测和修改它本身状态或行为的一种能力。 内省和反射的区别 反射是在运行状态把Java类中的各种成分映射成相应的Java类,可以动态的获取所有的属性以及动...

不思量 7134

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

java内省有什么作用_Java内省

1. 什么是内省?内省(Introspector)是Java语言对JavaBean类属性、事件的处理方法。例如类User中有属性name,那么必定有getName,setName方法,我们可以通过他们来获取或者设置值,这是常规操作。Java提供了一套API来访问某个属性的getter/setter方法,这些API存放在java.beans中。在计算机科学中,内省是指计算机程序在运行时(Run t...

weixin_33189820的博客 859

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

JAVA内省

java中的内省 1:内省是什么: 1:内省是利用getter setter方法 再利用反射获取属性属性,并对属性进行操作的 一种方法,因为getter setter 方法是getSHU性名() setSHU性名的形式存在, jdk可以通过这个形式不难找出属性名,并利用反射得到属性 2:在框架中为了获取Javabean属性,并且对属性进行操作,如果属性过多,我们是不是 需要编写大量的重复的代码...

weixin_44934751的博客 237

内省java_Java内省机制

Wiki上的解释:在计算机科学中,内省是指计算机程序在运行时(Run time)检查对象(Object)类型的一种能力,通常也可以称作运行时类型检查。 不应该将内省和反射混淆。相对于内省,反射更进一步,是指计算机程序在运行时(Run time)可以访问、检测和修改它本身状态或行为的一种能力。内省和反射有什么区别?反射是在运行状态把Java类中的各种成分映射成相应的Java类,可以动态的获取所有的属...

weixin_29433715的博客 236

java内省技术,Java的内省技术

以前知道Java中的反射, 也学习过一些和反射相关的内容. 今天看到了一个叫内省(IntroSpector)的技术, 所以就总结一下本文内容包括:什么是内省(IntroSpector)内省的作用内省和反射的区别如何使用内省内省的例子beanutils工具包使用如果觉得文章写的不错, 可以关注微信公众号: Coder张小凯内容和博客同步更新~Java的内省技术什么是内省内省: 计算机程序在运行时(R...

weixin_42309785的博客 423

内省 java_关于Java中内省的总结

内省基于JavaBean规范对反射进行了封装,提供了更加便捷的通过getter/setter方法来访问字段的方式Java内省的知识结构图JavaBean的规范JavaBean在现在可以认为就是普通的Java类,JavaBean规范规定一组通用的规则,开发人员在声明类时,都应该遵守这些规则1 类中要有一个无参public构造函数2 类中字段要使用private修饰3 为希望被外界访问的字段提供get...

weixin_33085941的博客 233

java内省的意思,Java内省机制

内省概述内省(Introspector)是Java语言对JavaBean类的属性,事件和方法的默认处理方式例如: 类User中有属性name,那么必定有getName,setName方法,内省就是通过这两个方法来获取或者设置name属性的值。JavaBean就是一个满足了特定格式的Java类需要提供无参数的构造方法.属性私有.对私有的属性提供public的get/set方法.内省类库java.be...

weixin_35387118的博客 415

java 内省技术

什么是内省 在计算机科学中,内省是指计算机程序在运行时(Run time)检查对象(Object)类型的一种能力,通常也可以称作运行时类型检查。 不应该将内省和反射混淆。相对于内省,反射更进一步,是指计算机程序在运行时(Run time)可以访问、检测和修改它本身状态或行为的一种能力。 内省和反射的区别 反射是在运行状态把Java类中的各种成分映射成相应的Java类,可以动态的获取所有的属性以及动态调用任意一个方法,强调的是运行状态。 . 内省(IntroSpector)是Java 语言针对 Bean 类

technologyleader的专栏 332

java内省_Java内省

内省的解释内省在wiki上的解释:在计算机科学中,内省是指计算机程序在运行时(Run time)检查对象(Object)类型的一种能力,通常也可以称作运行时类型检查。不应该将内省和反射混淆。相对于内省,反射更进一步,是指计算机程序在运行时(Run time)可以访问、检测和修改它本身状态或行为的一种能力。内省和反射有什么区别反射式在运行状态把Java类中的各种成分映射成相应的Java类,可以动态的...

weixin_34030345的博客 300

浅谈Java内省

讲内省,不得不说Java Bean,Bean在Java中是一种特殊的类,主要用于装载数据,数据会被存储在类的私有属性中,通常具有无参构造函数、可序列化、以及通过getter和setter方法来访问属性。内省是Java Beans规范的一部分,使用java.beans包中的类来实现,最常用的类是Introspector。通过内省,你可以获取一个Java Bean的属性描述符(PropertyDescriptor)和方法描述符(MethodDescriptor)

京东科技开发者 991

java的反射用不好容易走火入魔?还可以用内省啊!

使用内省相对于直接使用反射更加安全可靠,Java的反射机制比较特殊,它不同于一般的编程方式,稍不小心就容易破坏类的封装性。练的不好,就容易走火入魔。没关系,很多时候我们还可以使用Java的内省机制哦。

二当家的白帽子 2333
上一篇: java的反射技术
下一篇: BeanUtils框架的使用
Sweeter
博客等级 码龄14年 81粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值