id:miyakawa_taku:20140609:1402320680 の続きです。 Java SE 8 では Iterable インタフェースに forEach メソッドが用意されました。いわゆる内部イテレータで、通常は次のようにラムダ式をともなって使います。 List<String> list = ...; list.forEach(str -> System.out.println(str)); forEach に渡すラムダ式の本体では、チェック例外を投げることができません。 forEach の引数は Consumer インタフェースで、その Consumer.accept メソッドには throws 節がないからです。 したがって次のコードはコンパイルエラーになります。 Writer.write メソッドはチェック例外である IOException を投げるからです。 try (