Java:メソッドのパラメータとして所定の長さの配列を設定しますか?

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

一つの方法はこれです:

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

そこには良い方法がありますか?

0

4 答え

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

3
追加された

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

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

あなたの懸念事項がパラメータリストの長さであれば、パラメータオブジェクトを渡すことができます。

0
追加された

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

0
追加された

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

0
追加された