|
||||||||||||||||||||||||||
| 前のページ 1 2 3 4 | ||||||||||||||||||||||||||
| 日付 | ||||||||||||||||||||||||||
|
日付のインスタンスには数種類ありますが、状況に合わせて最適なインスタンスを使うようにしてください。 |
||||||||||||||||||||||||||
| 日付を表す配列には、longの配列を利用する(C_DATE001) | ||||||||||||||||||||||||||
|
Date型のインスタンスは多くのリソースを消費します。パフォーマンスを考慮をして、日付をあらわすのにはlong型を使用します。 ただし、日付を1つ保持する場合は、Date型とlong型のパフォーマンスの差はそれほど大きくないため、Date型を使用しても問題ありません。一方、配列を使って複数の日付を保持する場合はパフォーマンスの差が顕著にあらわれますので、long型を使用してください。 なお、Date型からlong型への変換は、DateクラスのgetTime()メソッドを使用します。 |
||||||||||||||||||||||||||
Calendar now = Calendar.getInstance();
|
||||||||||||||||||||||||||
|
得られたlong型は、1970年1月1日 0時0分0秒 GMTからのミリ秒数で日付をあらわしています。 一方、long型からDate型を取得するには、次のように、CalendarオブジェクトにsetTimeInMillis(long)メソッドで時刻を指定した後に、getTime()メソッドを使用します。 |
||||||||||||||||||||||||||
long time = ~;
|
||||||||||||||||||||||||||
| まとめ | ||||||||||||||||||||||||||
|
今回は「文字操作・数値・日付」に関するコーディング規約について説明してきました。 文字操作・数値・日付の規約に違反したコードは、潜在的なバグ・リソース浪費・パフォーマンス悪化などを引き起こします。これらはテストの過程で明るみにでてこない場合があり、結果として気付かないまま開発・テストフェーズを終えてしまいかねません。 開発・テストフェーズでこれらの問題が発見されなかった場合、リリース後に本番障害として検出され、ユーザに多大な迷惑をかけてしまいます。加えて、本番リリース済みのモジュールを修正する際には開発時より更に注意を払う必要があり、思い切った修正を行うにはリスクを伴います。 これらの問題を回避するためには、「文字操作・数値・日付」の規約に違反しないコードを書く、または問題を検出できるようなテストを実施する必要があります。しかし、これらの規約に違反したコードは、状況によっては正しく動作することがあるため、誤りを検出するテストを考えるのは容易ではありません。 以上のことから、今回の規約に違反しないコードを書くことが重要ですが、ただ単に気をつけるのではなく、次の3つのポイントに注意してコーディングをすると良いでしょう。
表4:文字操作・数値・日付を使う時の注意点
これら3つのポイントに留意し、潜在的なバグ・リソース浪費・パフォーマンス悪化などといった、発見しにくい問題を内包しないコードを書くことを目指してください。 |
||||||||||||||||||||||||||
|
前のページ 1 2 3 4 |
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
|
||||||||||||||||||||||||||

