【发布时间】:2009-06-07 14:36:20
【问题描述】:
由于this question 重新以四票结束,我再次尝试提出一个更狭隘的问题,希望社区能更积极地看待这个问题。
Java 中的哪些特定设计决策被记录为以它们的方式完成,不是因为这是首选的设计决策,而是因为有必要支持向后兼容性。
最明显的情况是泛型,您无法在运行时检测到类型参数。 (所以你不能这样做:
public void addEmptyMember(List<?> someList) {
if (someList instanceof List<String>) {
((List<String>) someList).add("");
}
}
语言设计和标准 API 中还有哪些此类示例?
【问题讨论】:
标签: java backwards-compatibility