自省十训

本文提供了一个程序员自省清单,帮助开发者识别并改进自己的不足之处,包括代码质量、团队协作及个人成长等方面。

我们是不是菜鸟,可用以下情况自我判断。如果常发生以下事情,可自省已。共勉:

 

1、当经理来问你昨天部署到服务器上的代码为何运行出错,你争辩说:在我的机器上本来是可以运行的阿?!

     - 尚不知容错、鲁棒、可用性乃软件之基本要素。

 

2、经常被字符集乱码问题搞得头昏脑胀。

     - 不明原理所致。各项基本功皆不扎实。

 

3、不写代码注释。

     - 多半因为你并不知道什么样的代码该写什么样的注释。

 

4、常用a a1 a2 b c d x y z 做变量名。

     - 编成经验10年以内的人,此做法百害无一益。

 

5、80%的情况下,对技术经理指出的批评不服气。认为错不在己。

     - 当有责改之,无则加勉。

 

6、很少重构代码。

     - 若无法体会重构所带来的乐趣,劝趁早改行。

 

7、在无明确分配任务的情况下,不知道自己该干什么。

     - 除了看新闻以外,其实有更多有意义的十件事情可做:重构、优化、学习、学习、学习、学习、学习、学习、学习、学习。

 

8、感觉自己在现在的公司学不到东西。

     - 孔子说: 三人行必有我师。圣人尚且如此,你算老几。

 

9、一受点儿挫折、不平或批评就有辞职不干之念。

     - 共勉三句话:

             一、是老虎,都吃人。你没见到而已;

             二、情商重于智商,气量重于技能;

             三、改环境易,改自己难。成功多来源于难事。

 

10、码如其人。

 

 

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、付费专栏及课程。

余额充值