【发布时间】:2014-06-09 07:40:03
【问题描述】:
是否可以使用 Lambda 表达式迭代 Enumeration?以下代码 sn-p 的 Lambda 表示形式是什么:
Enumeration<NetworkInterface> nets = NetworkInterface.getNetworkInterfaces();
while (nets.hasMoreElements()) {
NetworkInterface networkInterface = nets.nextElement();
}
我没有在其中找到任何流。
【问题讨论】:
-
枚举在 1998 年被 Java 1.2 中的迭代器取代。不幸的是,您仍然必须使用它。 :|
-
您可以将您的枚举调整为迭代器:stackoverflow.com/questions/5007082/…
-
@PeterLawrey 迭代器出现了,但仍然有使用枚举的核心 API。泛型出现了,但仍然有使用裸类型或返回 Object 的核心 API。 Lambdas 出现了,但是 Swing 仍然充满了多方法接口,所以我们不能使用它们。当我发现 Java 忘记现代化的 API 时,我真的不再感到惊讶了。这让我很难过。
-
@Trejkaz 是的,Swing 仍然使用 Vector 和 Hashtable。
-
@PeterLawrey Servlet API 仍然使用枚举。
标签: java lambda iteration enumeration java-8