Tag: java 5

升级到Java 6的非技术决策者(在客户端)的原因和优点

我想从Java 5升级到Java 6.我们都知道技术上的优势和好处,但是: 我有一个问题,一个主要客户拒绝从java 5升级到java 6,因为“风险”和“对我们来说没有/太less好处”(银行部门)。 对于客户端的非技术性决策者来说,什么可以回答他将从升级中得到什么好处 – 否则,如果他将继续使用Java 5,可能会出现哪些问题/后果? 这不是一个“消失和忘记”的产品,它是积极扩展的新function/特性 – 开发将会不断发展 – 开发团队将明确从jdk 6特性/工具中受益。 编辑: Java 5到达的EOL确实是一个有效的点,但它并没有说服客户端,因为他正在使用IBM JRE / JDK 5 ,这似乎还没有达到其生命的尽头 。 除此之外,客户表示:“Java 5运行良好多年,不可能出现新的,看不见的问题”

在for-each循环迭代开始之前,有没有办法避免空检查?

每次我必须迭代一个集合,最终在for-each循环迭代开始之前检查null。 喜欢这个: if( list1 != null ){ for(Object obj : list1){ } } 有没有更简单的方法,以便我们可以避免写“if”块? 注意:我正在使用Java 5,并且会在一段时间内停留。

Javagenerics:generics仅定义为返回types

我正在寻找GWT的一些GXT代码,我碰到了generics的这种用法,我无法在Java教程中find另一个例子。 如果你想查看所有的代码,类名是com.extjs.gxt.ui.client.data.BaseModelData 。 这里是重要的部分: private RpcMap map; public <X> X get(String property) { if (allowNestedValues && NestedModelUtil.isNestedProperty(property)) { return (X)NestedModelUtil.getNestedValue(this, property); } return map == null ? null : (X) map.get(property); } X在类中或层次结构中的任何地方都没有被定义,当我在eclipse中点击“去声明”时,它只是进入公共方法签名中的<X> 。 我试着用以下两个例子来调用这个方法来看看会发生什么: public Date getExpiredate() { return get("expiredate"); } public String getSubject() { return get("subject"); } 他们编译并显示没有错误或警告。 我想至less我必须做一个演员才能使这个工作。 这是否意味着generics允许一个神奇的返回值,可以是任何东西,只会在运行时炸掉? 这与仿制药应该做什么似乎是相反的。 任何人都可以解释这个给我,也可能给我一个链接到一些文件,解释这个更好一点? 我已经阅读了Sun的23页关于generics的pdf,并且返回值的每个示例都是在类级别定义的,或者是在传入的参数之一中定义的。