自省

最近依然很忙碌,各种安排面试,但期望的公司却一直由于各种原因delay

懒惰的问题似乎没有太大改善,拖延症依然很严重,明知道任务艰巨,前两天却还在晃悠

和家人的关系有所缓解吧,最近也表现的很努力,遇到事情也一起商量,比较配合。。。。。

对于动荡的换工作事件,却越来越不安,一个月过去了,虽然有几个意向,但都没有最终落实,依然是一个落兜里的都没有,有一些也不太想去,想去的又都不要我,很拧巴。不知道什么时候才能坚持过去。

IELTS今天考完,不知道结果如何,没有想象的难,但估计也很难达到理想的成绩,还是的继续努力的。

回顾前两周,基本都是在各处面试和准备面试的过程中,忽略了原有计划的学习内容,R和数据挖掘都还没有开始,process mining的课程也耽误了很多。发现还有好多要追的内容。

Java中的自省机制是一种允许程序在运行时检查类和对象的属性和方法的能力。这种机制特别适用于JavaBean组件,因为它们遵循特定的设计模式,使得自省能够识别出属性的getter和setter方法。自省机制不同于反射机制,尽管两者都涉及到运行时的类信息处理,但自省更专注于JavaBean的属性管理。 自省机制的工作原理涉及几个关键步骤。首先,通过`Introspector`类获取一个`BeanInfo`对象,该对象包含了JavaBean的所有属性信息。接着,使用`BeanInfo`对象获取`PropertyDescriptor`数组,每个`PropertyDescriptor`代表一个属性,并提供了获取和设置该属性值的方法。这些方法可以通过反射来调用,从而实现对JavaBean属性的操作。 下面是一个简单的示例,展示如何使用自省机制来获取JavaBean的属性信息: ```java import java.beans.BeanInfo; import java.beans.Introspector; import java.beans.PropertyDescriptor; import java.beans.SimpleBeanInfo; public class BeanInfoExample { public static void main(String[] args) throws Exception { // 获取BeanInfo对象 BeanInfo beanInfo = Introspector.getBeanInfo(MyBean.class); // 获取PropertyDescriptor数组 PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors(); // 遍历PropertyDescriptor数组 for (PropertyDescriptor pd : propertyDescriptors) { System.out.println("Property name: " + pd.getName()); Method getter = pd.getReadMethod(); Method setter = pd.getWriteMethod(); if (getter != null) { System.out.println("Getter method: " + getter.getName()); } if (setter != null) { System.out.println("Setter method: " + setter.getName()); } } } } // 一个简单的JavaBean class MyBean { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } } ``` 在这个例子中,`MyBean`类是一个符合JavaBean规范的类,它有一个名为`name`的属性,并提供了相应的getter和setter方法。当运行`BeanInfoExample`时,它会输出`name`属性的getter和setter方法名。 自省机制的一个重要特性是它假设任何带有getter或setter方法的类都有一个对应的字段。例如,如果存在`getName()`方法,自省机制会认为该类有一个`name`字段,即使实际上并没有这个字段[^3]。这种方法简化了属性的发现过程,但也可能导致一些误解,因为它依赖于方法命名约定而不是实际的字段存在。 总结来说,Java中的自省机制提供了一种方便的方式来访问和操作JavaBean的属性,而无需显式地知道这些属性的名字或类型。这是通过分析类的方法并推断出属性信息来实现的。这种方法不仅提高了代码的灵活性,还促进了组件之间的解耦合。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值