ここに私のシナリオを示します。Java:メソッドへの複数のパラメータの送信
メソッドを呼び出す必要があります。パラメータを Parameter1、Parameter2、..、..、Nに設定します。 ただし、メソッドに送信するパラメータは、それぞれの場合に変更されることがあります。
ケース1:パラメータの組み合わせが
ケース3に送られる:2のみパラメータ1が送信され
ケースすべてのパラメータが
に送信されますどのような最善の方法ですこれをJavaで実現するには?ここに私のシナリオを示します。Java:メソッドへの複数のパラメータの送信
メソッドを呼び出す必要があります。パラメータを Parameter1、Parameter2、..、..、Nに設定します。 ただし、メソッドに送信するパラメータは、それぞれの場合に変更されることがあります。
ケース1:パラメータの組み合わせが
ケース3に送られる:2のみパラメータ1が送信され
ケースすべてのパラメータが
に送信されますどのような最善の方法ですこれをJavaで実現するには?も参照してください。 eの質問への答え - すべてのパラメータが同じタイプになりますか?そうであれば、それぞれ同じように扱われますか?しかし、各パラメータが同じ型であるとして扱われます場合
public class MyClass
{
public void doSomething(int i)
{
...
}
public void doSomething(int i, String s)
{
...
}
public void doSomething(int i, String s, boolean b)
{
...
}
}
:パラメータが同じタイプではありませんか、もっと重要なのは同じ、あなたが使用する必要があるメソッドのオーバーロードを処理する予定がない場合は
public MyClass
{
public void doSomething(int... integers)
{
for (int i : integers)
{
...
}
}
}
明らかに変数引数を使用しているときは、そのインデックスによって各引数にアクセスすることができますが、ほとんどの場合、それは問題でヒントとして、私はこれに対して助言する:あなたは、可変引数は、Javaで機能を使用できるのと同じ方法であなたのデザイン。同様に、引数を反復処理するときに型チェックを行うと、デザインにレビューが必要になります。
多くのオブジェクトを印刷するvoidメソッドがあるとします。私はN.コメントから
に0から値を受け入れる引数としてvarargeを使用上記の例
public static void print(Object... values){
for(Object c : values){
System.out.println(c);
}
}
:何2かの文字列と5つの整数??
回答:
print("string1","string2",1,2,3,4,5);
すべてのパラメータは同じ型ではなく、渡されるパラメータの数はわかりません。 –
私はより明確になっているはずです - タイプチェックの必要なしに、すべてのパラメータを同じスーパータイプとして扱うことができますか?型チェックは世界の終わりではありませんが、ほとんどの場合、コードの臭いがあります。 –
すべてのパラメータは同じ型ではなく、渡されるパラメータの数はわかりません。 例: メソッド(文字列a1、文字列a2、文字列b1、文字列b2、..、..およびいくつかの共通int、文字列パラメータ) ここで、a1とa2は1セット、b1とb2は別のセットなどです。しかし、我々は渡さなければならないセットの数を知らない。 –