我有一个接收许多参数的函数。
为了使我的代码看起来更清晰,更易于维护,我想将该函数的某些部分外包给同一类中的另一个函数。
此新功能需要与原始功能相同的参数。 有没有办法一次传递这个函数的所有参数(当然是以相同的顺序),而不是必须明确地写出它们?
答案 0 :(得分:7)
如果你有超过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;
}
答案 1 :(得分:1)
请阅读java中的var args。我相信这是你正在寻找的解决方案。 这里有一个小例子:http://docs.oracle.com/javase/1.5.0/docs/guide/language/varargs.html
答案 2 :(得分:0)
虽然不能直接回答您的问题,但您可以尝试创建单独的类MyFunctionParams
,将所有参数作为类属性创建,并使用该类的对象传递参数。
答案 3 :(得分:0)
如果您有超过3个参数传递给函数,请使用DTO design pattern
。
DTO
- > Data transfer object
。
创建所有必需参数的对象并将其传递给方法。
如果您不想创建新类,请使用HashMap。
答案 4 :(得分:-3)
尝试
public void myMethod(Object... params){
// method body
}
然后
myMethod(param1,param2,param3);
或
myMethod(param1,param2,param3,param4)
三个点表示您传递的参数数量可变。请检查此链接http://java.sun.com/docs/books/tutorial/java/javaOO/arguments.html#varargs