TL で Enumeration
が使いづらいというツイートが流れてたら、鮮やかに解決するツイートも流れてきた。
なるほどなー、これ実際にはそのままダイレクトには書けないですけど、明示的にキャストしてあげれば書けますね
— がくぞ (@gakuzzzz) November 28, 2019
for (String name : (Iterable<String>) request.getHeaderNames()::asIterator) {
...
}https://t.co/NTL5iUFzL9
Enumeration<String> enumeration = ...;
Iterable<String> iterable = enumeration::asIterator;
asIterator
というメソッドが Java9 から生えていたらしい。
残念なことに 拡張 for 文のソースの部分では推論がうまくできないため、コンパイルエラーになる
for (String s: enumeration::asIterator) { System.out.println(s); }