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

虽然不能直接回答您的问题,但您可以尝试考虑创建单独的类,例如将MyFunctionParams所有参数作为类属性并使用该类的对象来传递参数。

于 2013-07-05T13:00:17.467 回答
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);

或者

我的方法(参数 1,参数 2,参数 3,参数 4)

三个点表示您正在传递可变数量的参数。检查此链接 http://java.sun.com/docs/books/tutorial/java/javaOO/arguments.html#varargs

于 2013-07-05T12:57:40.297 回答