1234);assertThat(text).isEqualTo("太郎さん。\n金額は1,234円です。\n");stripIndentは複数行の文字列から、一番浅いインデント分の空白を取り除きます。3");translateEscapesはエスケープシーケンスを変換します。\nという2文字をU+000Aに変換してくれます。(Java14)switchを式としても書けるようになりました。day);};上記はアロー構文を使った記述ですが、switch文同様のコロンラベル+yieldで書く方法もあります。day);};アロー構文でも複数の式が必要な場合は、ブロック+yieldを使います。day);};アロー構文はbreakを忘れて意図せずフォールスルーすることが無いので、アロー構文を使った方がよさそうです。(Java14)switchのラベルをカンマ区切りで複数書けるようになりました。switch式だけでなく、既存のswitch文でも利用できます。型をチェックするのと同時に、その型の変数を定義できるようになりました。(Java10)varという構文が追加され、ローカル変数の場合にはvarで型が省略できるようになりました。List.of("a");右辺で型が自明なもの(newしていたりなど)では良いと思いますが、メソッドの戻りの代入などでvarを使ってしまうと、型がわかりずらくなるので注意です。(Java9)インターフェースでprivateメソッドが定義できるようになりました。}}privateなので実装クラスからは参照できません。インターフェースのデフォルトメソッドやstaticメソッドからの参照になります。(Java16)StreamにtoListメソッドが追加されました。collect(Collectos.toList())で書いていた箇所が、もう少しすっきりとした形で書けるようになります。"b").toList();StreamのtoListは不変なリストを返します。そのため、そのリストに対して追加/削除/変更を行うと、UnsuptorpedOperationExceptionが発生します。Collectors.toListで返すリストは、実装としてはArrayListになっているため、追加/削除/変更は出来ていました。そのため、Collectors.toListを置き換えると問題が出る箇所もありえるので注意が必要です。Java10でCollectors.toUnmodifiableListが追加されており、こちらも不変なリストを返すものになっています。(Java16)flatMapと似たようなメソッドとしてmapMultiが追加されました。flatMapがStreamを返すのに対して、mapMultiは渡されたConsumerに対して値を設定していく形となります。指定した条件を満たす間のデータを対象とします。指定した条件を満たす間のデータを対象外とします。nullの場合は空のStreamを、null以外の場合は指定された値を持つ要素数1のStreamを返却します。(Java11)Predicate.notでPredicateを反転させられるようになりました。反転のためにメソッド参照を諦めていたような場所でメソッド参照が使えるようになります。(Java9)コレクションクラス(List``Set``Map)のファクトリメソッドが追加されました。全てイミュータブル(追加/削除/変更不可)なコレクションになります。(Java10)List、Set、MapにcopyOfというstaticメソッドが追加され、変更不可な複製が生成できるようになりました。コピー元が変更不可な場合、複製を作る必要がないので、コピー元のインスタンス自体が返却されます。(Java11)Collection#toArrayで引数に配列をnewする関数を指定できるようになりました。String[0]とか)のが、コンストラクタをメソッド参照で指定できるようになった感じです。書けるようになりました。他の作法と合わせたような感じです。(Java11)Files.writeStringが追加され、1メソッドで文字の書き込みが行えるようになりました。同様にreadStringで1メソッドで読み込みが行えるようになりました。(Java9)InputStreamに全てを読み込むメソッドのreadAllBytesが追加されました。inputStream.readAllBytes();ファイルの場合には、Files.readAllBytesがありましたが、それがInputStreamに対しても同じようなことが出来るようになりました。内容をOutputStreamに書き込むtransferToも追加されました。(Java11)String#repeatで文字列を指定回数繰り返した文字列を作成できるようになりました。同じようなものですが、全角スペースなども対象になるところが異なります。空白かどうか判定できます。行ごとの文字列のStreamを取得できるようになりました。(Java12)Stringのindentメソッドで、指定した文字数分のインデントを付けられるようになりました。(Java12)Stringにtransformメソッドが追加されました。Stringを引数に取るメソッドを渡すとそれを実行してその結果を返します。"1".transform(Integer::parseInt);メソッド呼び出し1回だと、あまりメリットを感じませんが、メソッド呼び出しが続くような場合には、読みやすくなります。値があったときのみ実行されましたが、値が無かった時のアクションも同時に実行できるifPresentOrElseが追加されました。emptyValueCounter.incrementAndGet());assertThat(hasValueCounter.get()).isEqualTo(0);assertThat(emptyValueCounter.get()).isEqualTo(1);orElseと似たようなものとして、orが追加されました。Optionalを返すSupplierを指定します。Optionalのままデフォルト値で補完するようなときに使えるのかもしれません。(Java9)streamメソッドでStreamに変換できるようになりました。値がある場合、値が一つ格納されたStream、値が無い場合、空のStreamになります。(Java11)OptionalにisEmptyが追加されました。isPresentの逆になります。github.com/onozatyバッジを贈って著者を応援しようバッジを受け取った著者にはZennから現金やAmazonギフト券が還元されます。(Java11)Zennエンジニアのための情報共有コミュニティAboutZennについて運営会社お知らせ・リリースGuides使い方Publicationよくある質問LinksTwitterGitHubメディアキットLegal利用規約プライバシーポリシ。