1

いくつかのパラメーターを受け取る関数があります。

コードをより見やすく維持しやすくするために、関数の一部を同じクラスの別の関数にアウトソーシングしたいと考えています。

この新しい関数には、元の関数と同じパラメーターが必要です。この関数のすべてのパラメーターを明示的に記述する代わりに、一度に (もちろん同じ順序で) 渡す方法はありますか?

4

5 に答える 5

8

3 つまたは 4 つを超えるパラメーターがある場合は、それらをオブジェクトにカプセル化し、パラメーター自体の代わりにそれを渡します。

だから、代わりに

void someMethod(String name, int age, double salary, char gender);

私は使うだろう

void someMethod(person);

人がこのようなものである場合(あなたはアイデアを得る)

class Person {
    String name;
    int age;
    double salary;
    char gender;
}
于 2013-07-05T12:59:10.530 に答える
1

Java の var args について読んでください。これがあなたが探している解決策だと思います。ここに小さな例があります: http://docs.oracle.com/javase/1.5.0/docs/guide/language/varargs.html

于 2013-07-05T12:59:15.727 に答える
0

DTO design pattern関数に渡されるパラメーターが 3 つ以上ある場合に使用します。

DTO-> Data transfer object. 必要なすべてのパラメーターのオブジェクトを作成し、それをメソッドに渡します。

新しいクラスを作成したくない場合は、HashMap を使用してください。

于 2013-07-05T13:01:44.023 に答える
-3

試す

public void myMethod(Object... params){
    // method body
}

その後

myMethod(param1,param2,param3);

また

myMethod(param1,param2,param3,param4)

3 つのドットは、可変数のパラメーターを渡すことを意味します。このリンクを確認してください http://java.sun.com/docs/books/tutorial/java/javaOO/arguments.html#varargs

于 2013-07-05T12:57:40.297 に答える