自省20120302

浮躁与成长:技术追求之路的自我反思

我承认我浮躁了,大概从10年的时候就开始了。从东软出来,来到了帝都,可能是缘分,顺利的来到了这里。

离开的原因,和大多数人一样,工作累、工资少、感觉自己NB了,在那学不到东西了。

我希望从小希望做一个NB的人,工作后,希望在程序世界里,指挥成千上万(Kb)的代码从容不迫的完成客户的各种刁难、当出现别人解决不了的问题的时候,自己上去几分钟就给解决了,这多NB啊。

所以我想做设计、做架构、直到CTO。我想这是一个热爱技术的人的终极目标。

我想方向应该没有错,错就错在我太着急了。

我以为自己会几个设计模式、知道点重构的皮毛、恬不知耻的认为自己看过几本架构的书就了不起了。

实际上呢,回头看看自己的代码和设计,真的令自己满意吗?这些设计在实际运行中经受住考验了么?--完全没有。

然而这个时候,自己却给自己找借口--无非就是时间紧任务重之类的。仔细想想,是真的没有时间做么?不是,懒而已。

当一个新技术或框架出来时,没有仔细研究,只看介绍。给自己的借口是:用到的时候再看。 是的,技术那么多,不可能全看完,但挑一两个深入了解还是可以的吧。 还是懒,浮躁。

看任何一个传统行业,没有10年的经验根本不能说自己属于“高级”,而软件业呢?2年、3年成为“高级”、甚至“架构师”的人比比皆是。而在这个行业呆了10年的人早已去做了管理。

我承认,自己被这个浮躁的环境影响了,有时想想,心里很不平衡。

然而这不是自己懒惰的理由,抱怨这个除了让自己的心情变坏外还能得到什么?

个人一直相信实践比理论难,但理论的重要性却不必实践小。
可是自己呢,自认实践很强,而理论?读过多少书?领会了别人的思想了么?没有知识的人如何走的更长远。

沉下心来,做自己喜欢的事,知识和技术都需要积累。
在抱怨环境前,先看看自己是不是已经做的够好了?能不能做的更好?如果确实是环境的限制,那走无可厚非,而如果只是眼红别人的成就、别人赚的钱比你多。 还是先从自己身上找原因吧。

写下这些文字,心里舒服多了,工作快5年了,不管是身边还是论坛上,见到太多的抱怨了,而我却SB似的吸收了很多。希望能借此排解一部分。

 

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

余额充值