システム開発で思うところ

JavaEEを主にシステム開発をしながら思うところをツラツラを綴る

Java

リファクタリングのメモ

自分向け。 過去に作ったものは、この考えに則っていないものは多々あるが、あくまで「今」の考え。多分今後も変わり続けると思う。 継承か委譲か 継承にするか、委譲にするか迷った時の判断基準 継承しているクラスのメソッドを拡張していないんだったら委…

パッケージの循環依存の対処

一般的にプログラムにおいて循環依存は良くないことと言われています*1。 とはいえ、Javaは循環依存をしていてもコンパイルエラーになることはありません。 なので気が付かない間に循環依存をしてしまっているケースはあるように思います。 とりあえず、パッ…

JavaSEのメモ

ブックマーク的なメモ パス関係 Javaで絶対パスを取得するgetAbsolutePath()の罠と解決方法 - Qiita 【Java Tips】ディレクトリ配下の全ファイルを処理する 指定パッケージ内のクラス一覧を取得するサンプル - うなの日記 ResourceBundleでクラスパス上にな…

Pluggable Annotation Processing API Sample

Pluggable Annotation Processing APIについて調べたり試したりしたまとめです。 今回やりたかったことは、Annotation Processorで生成したソースが確認できるまでの環境準備です。「とりあえずAnnotation Processorで簡易かつ完結したプロジェクトが欲しい…

Netbeans で Pluggable Annotation Processing API

こちらの記事のNetBeans版のようなものです。 d.hatena.ne.jp AnnotationProcessorが動くまでのところのチュートリアル的にやってみようと思ってやってみたところ、少し躓いたところもあったので誰かの参考になればと思い、まとめてみました。事例のベースも…

EnumのInterfaceに共通処理を実装する

以前の記事で、Interfaceとユーティリティのペアを説明しました。 Enumに状態を保持して、ユーティリティで振舞いを実装する、というやり方です。 vermeer.hatenablog.jp ロジックの冗長さを避けようと思ったわけですがオブジェクト指向ってそうじゃないんだ…

全部入りなResourceBundleを考える

恥ずかしながら、これまで小さくローカル環境のシステムなので国際化も文字コードも考慮することがありませんでした。 これまで参画したプロジェクトではフレームワークなりで準備されたものを使っていたので、あまり意識していませんでした。 調べて見ると…

JSFのSelectItemを拡張したEnumで実装する

前回、Enumを拡張しました vermeer.hatenablog.jpこれを使ってJSFのSelectItemを実装します。ちなみに、Enumだけでも十分対応は出来るようです。 【メモ】JSFでenumのオブジェクトをselectOneMenuに使う方法 - mike-neckのブログ JSFのConverterで見た闇の話…

EnumにInterfaceを使ってユーティリティを作成する

前回の続き vermeer.hatenablog.jp前回のEnumのようにテーブル値と表記がペアとなっているものは Interfaceを持たせて共通に操作する仕組みを作成しておくと便利です。 Enumクラスにメソッドを追加 package com.mycompany.samples.enumclass; import lombok.…

Enumはlombokとの組み合わせで振舞いを簡単に実装できる

Enumはとても便利。とはいっても、そのまま使うことは少ないです。テーブルの値や、画面におけるセレクトボックスの値などシステムにおける具体的な値と同期をとって使うことが多いように思います*1 今回は、性別をEnumで表現して画面などで使用するコード値…