2011-10-28 7 views
0

私は、5つの二重の値を取り、それらを使ってアクションを実行するメソッドを持っています。現在、引数リストは5つの異なる2倍です。メソッドへの引数としてdouble[]を渡す方法はありますか?その長さが正確に5であることを確認してください。Java:メソッドパラメータとして所定の長さの配列を設定していますか?

一つの方法はこれです:

private void myMethod(double[] args) { 
    if (args.length == 5) { 
     // do something 
    } 
} 

が、良い方法はありますか?

答えて

3

正確に5倍にする必要があることが分かっている場合は、5つの別個の倍を求める方が良いと思います。意味のある名前でリストされていると、変数の順番を真っ直ぐに保つだけでは、(intellisenseやそれが呼び出されたとしても)まだまだ難しいでしょう。それらが配列内にある場合、ユーザーはどの値をどのインデックスに入れるべきかを調べるためにドキュメンテーションを参照する必要があります。

0

いいえ関数に渡される配列の長さを制限することはできません。

チェックコードをメソッドから外してクリーナーにすることが目的ならば、実際の作業を別のメソッドに委譲することができます。

パラメータリストの長さに問題がある場合は、パラメータオブジェクトを渡すことができます。

0

5倍に制限されたVectorの特殊化であるクラスを作成することはできますが、それは過度のようです。私は配列にあまりにも少なすぎたり多すぎるエントリがある場合は例外をスローします。これは実行時の例外ではなくプログラミングの問題である可能性があります。

0

あなたのコードをtry-catchブロックに入れることができます。これは不必要なチェックを見逃してしまいます。 何か間違っていると、例外の問題を避けることができます。

関連する問題