Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于可选阵列支持的重载-Java_Java_Overloading - Fatal编程技术网

用于可选阵列支持的重载-Java

用于可选阵列支持的重载-Java,java,overloading,Java,Overloading,有没有办法使这段代码更简洁,这样就不会有这么多重载方法 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){} 重载方法的数量随着参数数量的增加呈

有没有办法使这段代码更简洁,这样就不会有这么多重载方法

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){}
重载方法的数量随着参数数量的增加呈指数增长。这显然是一个问题,我知道必须有一个更简单的方法来做到这一点

我们的目标是找到一种最佳方法,在不使用数组进行单个对象输入的情况下,将任意数量的相同类型的对象作为参数进行传递


为什么??这对于终端程序员来说是简单的。

如果您有大量的参数,而且这些参数将来可以增加,那么最好将它们都封装在单独的类中,即InputParams中,并且只将该类的一个实例传递给该方法。考虑下一个代码:

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

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

但是,正如其他人提到的,这实际上取决于许多条件和您试图实现的目标。

基本上,您希望使用
公共无效方法(String[]args1,String[]args2){}
作为您的主要方法,而其他方法只会让程序员更容易?您可以简单地删除其他组件,或者仍然执行它们,如:

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

在这种情况下,您只需实现
public void方法(String[]args1,String[]args2){}

变量参数varargs的代码,Java允许您编写更灵活的方法,可以根据需要接受任意多的参数。这些功能允许编写具有可变长度参数的方法/函数

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+"  ");
        }
}

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

输入:
u1.方法(null,s3,s1,s4)
这里
u1
是类对象并调用其方法

public static void method(String[] args1, String[] args2,String s1, String s2)
{
   System.out.println(s1);
}

我们不知道你在努力实现什么,这使得帮助你很困难。。。你能澄清这个问题吗?好的。现在你的问题是什么?难道不是
公共void方法(t…args)
你在寻找什么吗?不是,因为这一次只允许一个字符串或字符串数组。另外,我需要多个参数。但是,唉,varargs只能放在参数列表的末尾。