传递函数的所有参数

时间:2013-07-05 12:55:45

标签: java

我有一个接收许多参数的函数。

为了使我的代码看起来更清晰,更易于维护,我想将该函数的某些部分外包给同一类中的另一个函数。

此新功能需要与原始功能相同的参数。 有没有办法一次传递这个函数的所有参数(当然是以相同的顺序),而不是必须明确地写出它们?

5 个答案:

答案 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