|
||||||||||||||||||||||||||
| 1 2 3 4 次のページ | ||||||||||||||||||||||||||
| はじめに | ||||||||||||||||||||||||||
|
今回、説明する文字操作・数値・日付に関するコーディング規約は、規約違反の箇所が見つかった場合、比較的簡単にコードの修正ができてしまうものばかりです。 簡単にコードの修正ができるという点から疎かにしてしまいがちですが、これらの規約に違反したコードを実装すると次のような問題を引き起こします。
表1:引き起こす問題
このような問題が発生した場合、コードのどこが悪いのかを探すのは困難です。しかし、今回説明する規約をコーディング時に留意することにより、これらの問題を回避することができます。 それでは早速、文字操作・数値・日付に関する規約について説明していきます。 |
||||||||||||||||||||||||||
|
本連載で紹介する規約に関しては、規約名のみを記述しています。規約そのものは、以下のURLからダウンロードして確認してください。
http://www.objectclub.jp/community/codingstandard/JavaCodingStandard2004.pdf |
||||||||||||||||||||||||||
| 文字操作 | ||||||||||||||||||||||||||
|
プログラムが意図したように動作しているために正しいコードを書いていると思い込んでいる場合がありますが、パフォーマンスの問題などから文字操作の際には推奨されるメソッドがあります。 |
||||||||||||||||||||||||||
| 文字列どうしが同じ値かを比較するときは、equals()メソッドを利用する(C_STR001) | ||||||||||||||||||||||||||
|
Stringが同じ文字列かどうかを比較するときに"=="を使用してはいけません。"=="を使用すると同じインスタンスかどうかを比較することになります。 悪い例 |
||||||||||||||||||||||||||
public boolean compare (String name, String anotherName) {
|
||||||||||||||||||||||||||
|
次のように"equals"を使用すると、文字列同士の比較となります。 良い例 |
||||||||||||||||||||||||||
public boolean compare (String name, String anotherName) {
|
||||||||||||||||||||||||||
|
同一クラス内で文字列の内容が同じものを比較する場合、リテラルに"=="を使用してもうまくいくいきます。なぜなら、同一クラス内で文字列の内容が同じStringは、コンパイラが同じインスタンスに最適化するためです。 "=="で比較して一致してしまう場合 |
||||||||||||||||||||||||||
private String strTemp1 = "Literal";
|
||||||||||||||||||||||||||
|
上記のstrTemp1とstrTemp2は同じインスタンスとなり、"=="を使用した判定でもtrueが返されてしまい、"=="で文字列の比較ができていると勘違いしてしまいます。 一方、strTemp1とstrTemp2が下記のように宣言されていると、"=="を使用した判定ではfalseが返されます。 |
||||||||||||||||||||||||||
private String strTemp1 = "Literal";
|
||||||||||||||||||||||||||
|
1 2 3 4 次のページ |
||||||||||||||||||||||||||
|
参考文献など
Javaコーディング規約2004は以下のサイトおよび書籍として発表しています。本連載と共に参考にしてください。 「Javaコーディング規約2004」 http://www.objectclub.jp/community/codingstandard/JavaCodingStandard2004.pdf 「オブジェクト倶楽部」 Javaコーディング規約2004は、オブジェクト倶楽部で公開して頂いております。 http://www.objectclub.jp/ 「超図解 Java ルールブック」 Javaコーディング規約が「超図解 Java ルールブック」という名前で書籍になりました。規約の詳しい内容に関しては本書籍をご覧ください。 http://www.x-media.co.jp/xbook/index.cfm?ID=6 Javaコーディング規約を理解するに際しての参考サイトをご紹介します。 「Code Conventions for the Java Programming Language」 http://java.sun.com/docs/codeconv/ ※日本語訳を提供しているページ http://www.tcct.zaq.ne.jp/ayato/programming/java/codeconv_jp/ Java コーディング規約を理解するに際しての参考書籍をご紹介します。 「Java の格言」 「Java の鉄則」 「リファクタリング - プログラミングの体質改善テクニック」 「The Elements of Java Style」 「Effective Java - プログラミング言語ガイド」 「Essential Java Style」 |
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
|
||||||||||||||||||||||||||

