有没有办法让这段代码更简洁,以免有这么多重载的方法?
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){}
随着参数数量的增加,重载方法的数量呈指数增长。这显然是一个问题,我知道必须有一个更简单的方法来做到这一点。
目标是找到将任意数量的相同类型的对象作为参数传递的最佳方法,而不使用数组进行单个对象输入。
为什么呢?这对于最终程序员来说非常简单。
答案 0 :(得分:1)
也许如果你有大量的论点 - 除了 - 将来可以增加,最好将它们全部包装在单独的类中,即InputParams,并且只将该类的一个实例传递给该方法。考虑下一个代码:
InputParam ip = new InputParam();
ip.setField1(field1);
//...
// usage
this.method(ip);
// declaration
public void method(InputParams arg){}
P.S。但是,正如其他人提到的那样,这实际上取决于许多条件和你正在努力实现的目标。
答案 1 :(得分: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){}
答案 2 :(得分:0)
变量参数或 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+" ");
}
}
答案 3 :(得分: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);
}