2008-04-26

小谈Java Enum的多态性

关键字: java enum 多态
Enum+多态,我没说错,不过Enum是不可以被继承的,也不可以继承自别人,只是能实现接口而已,何谈多态? 不过还是先看看“现象”吧: public enum Fruit { APPLE, PEAR, PEACH, ORANGE; } 以上是一个简单的enum,关于它,我要补充一点: Fruit是java.lang.Enum的子类,准确地说,是Enum<Fruit>的子类,这里出现了一个继承关系,不过这个继承是编译器帮我们做的,我们不能显式地去做。不信的话我们可以试着用一个Enum<Fruit>的引用去指向一个APPLE,肯定是没问题的,我就不再试了。 为了更直观地说明 ...
2007-12-09

其实Annotation这样就美了...

关键字: annotation 配置文件
是的,annotation的出现减少了繁杂的配置文件,将那些原本可能是runtimeException的东西扼杀在了编译期。 不过最近在考虑一个小项目的时候发现想要用它来完全代替传统的配置文件还很困难。 首先,它无疑使得代码变得难看,这一点不用多说了; 其次,它不支持多份配置: 因为annotation怎么说也是直接写在代码里的,写在类的定义里的。也就是说一个类也就只能对应一套annotation。那么遇到这种情况:我想初始化同一个类的很多个对象作为prototype或者说单例的共享对象,我要求这些对象虽然是同种类型、拥有同样的行为,但要包含不同的数据。我在项目中遇到这样配置要求的话目前的an ...
现象描述: 打算将由BeanUtils的getProperty方法返回的Date类型的字符串表示重新通过SimpleDateFormat转换成Date类型的对象老是失败,抛ParseException异常. 分析: 调用commons项目里的BeanUtils对象里的getProperty方法返回某个对象中的Date类型的成员变量.BeanUtil中对getProperty方法的描述如下: Return the value of the specified property of the specified bean, no matter which property reference fo ...
浏览了一下《Jakarta Commons Cookbook》(Timothy M. O'Brien)。里面介绍了commons各子项目提供的各种实用类,大致浏览了一遍,做个总结,以后遇到相同的问题可以到commons里去寻找答案。 以下列出一些我认为比较有价值的功能,方便以后参考: lang: 1)反射地生成hashcode、equals、toString方法。 2)反转数组 3)在数组中搜索指定项,并可设置起始位置 4)线程安全地使用日期格式化 5)验证方法参数的合法性 6)为程序计时 lang.StringUtils、WordUtils: 1)检查空字符串 2)省略字符串,可指 ...
http://www.javaeye.com/topic/2038 这是javaeye论坛上的文章,比较老了,但看完后仍然感触很大,对进一步建立OO思想很有帮助,值得一看。
1)这里比较一下ArrayList和LinkedList:1.ArrayList是基于数组,LinkedList基于链表实现。2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。4.查找操作indexOf,lastIndexOf,contains等,两者差不多。这里只是理论上分析,事实上也不一定,比如ArrayList在末尾插入和删除数据就不设计到数据移动,不过还是有这么个建议:随机访问比较多的话一定要用ArrayList而 ...
最近在考虑一个问题:java中如何在运行时改变方法的执行,就是在方法中动态增加一些原本代码中没有的动作。 怎么做?首先浮现在我脑子里就是那些繁琐的反射API以及AOP的想法。但反射API或Proxy类的相关API只能做到“在方法调用的前后做一些事情”,并不能做到“在方法内部做一些改动”。 我先后在学校论坛、sun中国技术社区发布帖子寻求答案。 今天突然想到一些底层的东西,发现我这个想法貌似很天真且不可能——方法里的东西,不是局部变量就是对其它函数的调用,而这些东西是被压在当前线程的调用栈里的,貌似要在运行时动态改变这些已经 ...
System.getProperty()参数大全 java.version Java Runtime Environment version java.vendor Java Runtime Environment vendor java.vendor.url Java vendor URL java.home Java installation directory java.vm.specification.version Java Virtual Machine specification version java.vm.specification.vendor J ...
pf_miles
搜索本博客
我的相册
B5ff80b4-2ec3-3fc2-84c0-8dd1445b0135-thumb
svP4
共 10 张
存档
最新评论