The King's Museum

ソフトウェアエンジニアのブログ。

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

【Effective Java】項目37:型を定義するためにマーカーインタフェースを使用する

マーカーインタフェース マーカーインタフェースはメソッド宣言を一つももたないインタフェースです。 そのインタフェースを実装しているクラスが何か特別な性質を持っていることを示すために宣言します。 たとえば Serializable インタフェースはマーカーイ…

【Effective Java】項目36:常に Override アノテーションを利用する

@Override アノテーション Java 1.5 でいくつかのアノテーションがライブラリに追加されましたが、最も重要なのは @Override アノテーションです。 @Override アノテーションはスーパークラスのメソッドをオーバーライドしていることを示します。 public cla…

【Effective Java】項目35:命名パターンよりアノテーションを選ぶ

アノテーション Java のアノテーションは、ソースコードにメタデータを付与するための仕組みです。 付与されたアノテーションは、コンパイル時にコンパイラが利用したり、実行時に仮想マシンが利用したりします。 通常、アノテーションはメタデータなのでコ…

Productivity Hacks

ちょっと前に rebuild.fm で Productivity の回を聞いた。 Rebuild: 139: Productivity Extremist (higepon) 自分が生産性向上系メソッドをやり始めてちょうど1年くらい。 そろそろ一回ブログにでもまとめておきたいなぁ、と思っていたところでちょうど reb…

【Effective Java】項目34:拡張可能な enum をインタフェースで模倣する

Enum の疑似拡張 Java の Enum 型は拡張することはできません。 たとえ可能だとしても拡張するべきではありません。 ただし、拡張可能な Enum を利用したくなる場合があります。 オペコードと呼ばれるマシンに対する操作を列挙型で表現したいとします。 その…

【Effective Java】項目33:序数インデックスの代わりに EnumMap を使用する

序数インデックス 配列のインデックスとして Enum の ordinal() を使ってはいけません。 例えばハーブの種類(一年生(Annual)、多年生(Perennial)、越年生(Biennial))ごとに、ハーブをまとめたいと仮定します。 このような場合、配列と Enum.ordninal…

CODE COMPLETE 第1部メモ

CODE COMPLETE を読み始めた。 Code Complete 第2版 上 完全なプログラミングを目指して作者: スティーブマコネル出版社/メーカー: 日経BP社発売日: 2014/04/02メディア: Kindle版この商品を含むブログ (12件) を見る Code Complete 第2版 下 完全なプログラ…

【Effective Java】項目32:ビットフィールドの代わりに EnumSet を使用する

ビットフィールド 列挙型を集合として用いる場合、旧来は以下の方法が使われました。 public class Text { public static final int STYLE_BOLD = 1 << 0; // 1 public static final int STYLE_ITALIC = 1 << 1; // 2 public static final int STYLE_UNDERLI…

(c) The King's Museum