mike-neckのブログ

Java or Groovy or Swift or Golang

Enumeration を使いやすくする(Iterable にする/Iterator にする)

TL で Enumeration が使いづらいというツイートが流れてたら、鮮やかに解決するツイートも流れてきた。


Enumeration<String> enumeration = ...;
Iterable<String> iterable = enumeration::asIterator;

f:id:mike_neck:20191128174829p:plain

asIterator というメソッドが Java9 から生えていたらしい。


残念なことに 拡張 for 文のソースの部分では推論がうまくできないため、コンパイルエラーになる

for (String s: enumeration::asIterator) { System.out.println(s); }

f:id:mike_neck:20191128174603p:plain