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

絶対にはまる SuperCSV(ver2.2.1で解消済み) の罠

2015年1月リリースのSuperCSV 2.2.1 より前のバージョンには、大抵の人がはまる罠があります(長い間放置されてきました)。 新しいバージョンでは修正されていますが、いくつものプロジェクトで誤った使われ方となっているのを見てきましたので、古い SuperCS…

Strategy enum パターンを使う場合の注意点

普通の enum 普通に enum 定義して、 package foo; public enum Operation { PLUS, MINUS, ; } クラス名を取得すると以下となる。 Operation.PLUS.getClass().toString(); // -> "class foo.Operation" Operation.PLUS.getClass().getSimpleName(); // -> "O…

Java の Optional は Serializable ではない

Java の Opional は関数の戻り値として利用することに焦点が当てられているため、Serializable ではない。 よって以下のようにフィールドとして定義したり、 private Optional<String> name; コレクションに入れたり、 List<Optional<String>> list; メソッドの引数で受けたり、 publi</optional<string></string>…

Gradle で weld-se を使う

はじめに CDI in Java SE (CDI2.0) Main クラスの作成 Application クラスと Serviceクラスの作成 beans.xml build.gradle 実行 はじめに Gradle の Applicationプラグインで weld-se を使う場合、CDI管理の Bean の検索が beans.xml のあるファイルシステム…

CDI(Contexts and Dependency Injection)まとめ

CDI のバージョン インジェクションポイント コンストラクタインジェクション フィールドインジェクション メソッドパラメータ(イニシャライザメソッド)インジェクション インジェクトのタイミング スコープアノテーション ノーマルスコープ 擬似スコープ Be…