自从这个问题重新获得了四个关闭票,我再次尝试提出一个更加具体的问题,希望社区能够更加欣赏。
Java中哪些特定的设计决策是被记录下来的,因为它们不是首选的设计决策,而是必须支持向后兼容性。
显然的例子是泛型,在运行时无法检测类型参数。(所以你不能这样做:
public void addEmptyMember(List<?> someList) {
if (someList instanceof List<String>) {
((List<String>) someList).add("");
}
}
在语言设计和标准API中还有哪些类似的例子?