0

有没有办法让这段代码更简洁,以免有那么多重载的方法?

public void method(String[] args1, String[] args2){}
public void method(String[] args1, String args2){}
public void method(String args1, String[] args2){}
public void method(String args1, String args2){}

随着参数数量的增加,重载方法的数量呈指数增长。这显然是一个问题,我知道必须有一种更简单的方法来做到这一点。

目标是找到最好的方法来传递任意数量的相同类型的对象作为参数,而不使用数组进行单对象输入。

为什么?这是为了最终程序员的简单性。

4

4 回答 4

1

也许如果你有大量的参数——除此之外——将来可以增加,最好将它们全部包装在单独的类中,即 InputParams 并且只将这个类的一个实例传递给方法。考虑下一个代码:

InputParam ip = new InputParam();
ip.setField1(field1);
//...
// usage
this.method(ip);

// declaration
public void method(InputParams arg){}

PS 但是,正如其他人所提到的,这实际上取决于许多条件以及您要达到的目标。

于 2013-07-24T05:57:11.863 回答
0

Java 中的可变参数varargs允许您编写更灵活的方法,这些方法可以根据需要接受尽可能多的参数。这些功能可以编写采用可变长度参数的方法/函数。

public static void main(String args[]) 
{
        test("India");
        test("India", "Delhi");
        test("United States", "New York", "California");
}

public static void test(String... args) 
{
        for(String arg: args) 
        {
            System.out.print(arg+"  ");
        }
}
于 2013-07-24T06:06:52.903 回答
0

我们可以通过获取所有 4 种类型的参数和我们不想发送的参数来创建一个方法,我们可以将其作为 null 发送。在接收方法中,我们可以根据需要编写一些逻辑。

输入:u1.method(null,s3,s1,s4);u1是类对象并调用它的方法

public static void method(String[] args1, String[] args2,String s1, String s2)
{
   System.out.println(s1);
}
于 2013-07-24T06:57:34.703 回答
0

基本上你想public void method(String[] args1, String[] args2){}用作你的主要方法和其他人只是让程序员更容易?您可以简单地删除其他人或仍然像这样实现它们:

public void method(String args1, String args2){
    this.method(new String[]{args1}, new String[]{args2});
}

在这种情况下,您只需要实现代码public void method(String[] args1, String[] args2){}

于 2013-07-24T05:59:50.533 回答