weblog

技術的なメモ置き場。

2018-01-01から1ヶ月間の記事一覧

PowerMock + Mockitoでstaticメソッドをモック化

以下のバージョンを使用 PowerMock:1.7.3 Mockito:2.8.9 // モック化するクラス public class StaticFoo { public static String staticMethod() { return "bar"; } } // テストケース @RunWith(PowerMockRunner.class) // 1 @PrepareForTest(StaticFoo.clas…

Java9 interfaceクラス

Java9でinterfaceクラスにprivateメソッドを定義できるようになった。 interface Foo { private String bar() { return "bar"; } // オーバーロードもOK private String bar(String baz) { return baz; } // staticメソッドもOK private static void qux() {…

Java9 try-with-resource文

Java9ではtry-with-resource文で、try句でのリソースの変数を宣言しなくてもよくなった。 FileInputStream is = new FileInputStream("foo"); try (is) { // omit } catch (Exception e) { } // Java8 try (FileInputStream is = new FileInputStream("foo")…

Java9 識別子

Java9からアンダースコア1つを識別子として使えなくなった。 // NG String _ = "Foo"; // 2つならOK String __ = "Foo"; Java18から引数が1つのラムダ式のみで使えるようにするためらしい。 _ -> foo()

Java9 匿名クラスでダイヤモンド演算子

Java9で匿名クラスにダイヤモンド演算子が使えるようになった。 List<String> list = new ArrayList<>() {}; // Java8だとパラメータの型を明示的に指定する必要がある List<String> list = new ArrayList<String>() {};</string></string></string>

Java9 Stream APIの追加メソッド

Java9の新機能を試す。今回はStream APIの追加メソッド。 takeWhile(Predicate predicate) predicateのtestメソッドがtrueを返すまで要素を取得する。 // 1, 2を出力 List.of(1, 2, 3, 4, 5).stream() .takeWhile(i -> i != 3).forEach(System.out::println)…

Java9 Optionalの追加メソッド

Java9の新機能を試す。 今回はOptionalに追加されたメソッド。 ifPresent(Consumer action) 値が存在する場合のみactionを実行する。 // Foo が出力される Optional.ofNullable("Foo").ifPresent(System.out::println); // 何も出力されない Optional.ofNull…

Java9 コレクションのファクトリメソッド

Java9の新機能を試す。 今回はコレクションのファクトリメソッド。 生成されるオブジェクトはイミュータブル。 List List.of(1, 2, 3); // nullを含むとエラー List.of(null); Map keyとvalueを交互に指定する。 Map.of("foo", 1, "bar", 2); // keyが重複す…