2016-06-01から1ヶ月間の記事一覧
浮動小数点数 数値に関する正確な答えが知りたい場合、float と double の利用は避けるべきです。 float と double は2進数浮動小数点数で表されます。 浮動小数点数は広い範囲の数値計算に対して、近似をすばやく行うために設計された小数計算方式です。 …
標準ライブラリーの利点 標準ライブラリーを使うことには大きなメリットがたくさんあります。 第一に自作ライブラリと比較して、標準ライブラリは非常に完成度が高いです。 高度なバックグラウンドをもったシニアエンジニアが設計、実装、テストを行っていま…
for ループよりも for-each ループを利用しましょう。 Java 5 よりも前では、コレクションと配列を走査する好ましい方法は以下の通りでした。 // コレクションの走査 for (Iterator i = c.iterator; i.haxNext(); ) { doSomething((Element) i.next()); } //…
ローカル変数のスコープは最小限にするべきです。 Java では古いバージョンの C 言語と違って、文が書ける場所であれば変数宣言を書くことができます。 スコープの先頭ですべての変数を宣言せず必要な箇所で変数を宣言すれば、変数のスコープを最低限に保て…
Javadoc Javadoc はソースコードに書いたドキュメンテーションコメントを処理して、ソースコードから自動的に API ドキュメンテーションを生成することができます。 Javadoc のドキュメントコメント規約は Java の一部ではありませんが、事実上の API となっ…
配列やコレクションを返すメソッドは、null を返すべきではありません。 null の代わりに空の配列か空のコレクションを返すべきです。 null を返すとメソッドを利用するコードには null チェックが必要になるため、コードが煩雑になります。 そこで null チ…
可変引数メソッド Java 5 から可変長引数メソッドが利用できるようになりました。 正式には『可変引数メソッド(variable arity method)』と呼ばれています。 可変引数メソッドは任意の0個以上の引数を受け付けることができます。 実際の動作は次のとおり…
オーバーロード オーバーロードとは同じ名前・同じ数の引数を持つメソッドに対して、呼び出し側の引数に応じて、対応するメソッドが呼び出される機能のことです。 たとえば、引数の型ごとに型の名前を返すメソッドをオーバーロードを使って実装します。 publ…
ここでは独立して項目を作るほどではないような API 設計時のヒントを説明します。 メソッド名を注意深く選ぶ メソッドに限らず名前は常に標準命名規約に従うべきです。 理解可能で同じパッケージの他の名前と矛盾しない内容にするべきです。 さらに、一般的…
不変オブジェクトの抜け道 クラスの製作者は常に「クライアントは不変式を破壊するためにあらゆる方法を使ってくる」と仮定し、防御的にプログラムを書くべきです。 「セキュリティホールをついてくるような悪意のある開発者」から「単純な間違いをおかす初…
第6章が終わったので『第7章:メソッド』に入る。 この章は一般的な話なのですぐに終わりそうだ。 パラメータをチェックする ほとんどのメソッドとコンストラクタは、渡されるパラメータに関して何らかの制限を持っています。 この制約は文書化し、メソッ…