历史上哪些Java特性作为模式开始,现在是一种语言特性?

chu*_*uck 26 java history programming-languages

我会说实话.我需要帮助解决我难以理解的作业问题.

描述历史上以模式开始的东西,现在支持Java语言功能.

SLa*_*aks 46

他们可能正在寻找enums.

在Java 1.5为enums 引入语言支持之前,标准做法是将一组public static final ints 定义为枚举值.
这种模式可以在Swing上看到.

其中许多常量都在接口中定义,以便类可以实现接口并使用没有限定类型名称的常量; 该SwingConstants接口是一个很好的例子.

  • +1:但你还应该补充一点,Java的内置枚举支持是[Typesafe枚举模式](http://www.javacamp.org/designPattern/enum.html)的一种(功能稍弱)实现. (2认同)

Jon*_*eet 42

我能想到的是周围最明显的图案通过迭代Iterable<T>Iterator<T>,这是目前可作为通过增强的for-each循环功能.


Luc*_*lis 5

来自http://en.wikipedia.org/wiki/Java_version_history:枚举(类型安全枚举模式)

有关"有效Java"第5章第21项中此模式的更多信息(可在此处找到:http://java.sun.com/developer/Books/effectivejava/Chapter5.pdf)


ams*_*ams 5

注释都是关于用于存储在各种xml文件或javadoc注释中的元数据,现在您可以使用注释来存储元数据和代码.

依赖注入是另一种模式,虽然不是java语言的一部分正在进入核心jdk框架.


小智 1

我建议使用泛型。这从一开始就不是 Java 的一部分,而是从 1.5 及更高版本开始实现的。

  • 不; 泛型并不是作为一种模式开始的。 (13认同)
  • 我不会说这是一个糟糕的答案。人们做了各种令人厌恶的事情,试图在泛型之前对集合强制执行不变量,从 Javadoc 注释到运行时类型检查,再到扩展“ArrayList”和重载“add()”等方法以仅采用所需的类型等。 (6认同)