2016-05-01から1ヶ月間の記事一覧
マーカーインタフェース マーカーインタフェースはメソッド宣言を一つももたないインタフェースです。 そのインタフェースを実装しているクラスが何か特別な性質を持っていることを示すために宣言します。 たとえば Serializable インタフェースはマーカーイ…
@Override アノテーション Java 1.5 でいくつかのアノテーションがライブラリに追加されましたが、最も重要なのは @Override アノテーションです。 @Override アノテーションはスーパークラスのメソッドをオーバーライドしていることを示します。 public cla…
アノテーション Java のアノテーションは、ソースコードにメタデータを付与するための仕組みです。 付与されたアノテーションは、コンパイル時にコンパイラが利用したり、実行時に仮想マシンが利用したりします。 通常、アノテーションはメタデータなのでコ…
ちょっと前に rebuild.fm で Productivity の回を聞いた。 Rebuild: 139: Productivity Extremist (higepon) 自分が生産性向上系メソッドをやり始めてちょうど1年くらい。 そろそろ一回ブログにでもまとめておきたいなぁ、と思っていたところでちょうど reb…
Enum の疑似拡張 Java の Enum 型は拡張することはできません。 たとえ可能だとしても拡張するべきではありません。 ただし、拡張可能な Enum を利用したくなる場合があります。 オペコードと呼ばれるマシンに対する操作を列挙型で表現したいとします。 その…
序数インデックス 配列のインデックスとして Enum の ordinal() を使ってはいけません。 例えばハーブの種類(一年生(Annual)、多年生(Perennial)、越年生(Biennial))ごとに、ハーブをまとめたいと仮定します。 このような場合、配列と Enum.ordninal…
CODE COMPLETE を読み始めた。 Code Complete 第2版 上 完全なプログラミングを目指して作者: スティーブマコネル出版社/メーカー: 日経BP社発売日: 2014/04/02メディア: Kindle版この商品を含むブログ (12件) を見る Code Complete 第2版 下 完全なプログラ…
ビットフィールド 列挙型を集合として用いる場合、旧来は以下の方法が使われました。 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…