java - 可选数组支持的重载 - Java

标签 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){}

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

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

为什么?这是为了让最终程序员变得简单。

最佳答案

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

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

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

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

关于java - 可选数组支持的重载 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17826151/

相关文章:

java - 如何使用 Quarkus 在 Swagger 中生成请求示例

java - 消费品生产商

c++ - 成员函数不能为 set iterator 和 const_iterator 的输入重载(但可以为其他 STL 迭代器重载)

具有父类(super class)和子类签名的 Java 2 函数 - 尽 pipe 类的类型是子类,但仍选择父类(super class)

Java 脚本引擎(nashorn 和犀牛): how to stack scopes/bindings?

java - 仅用整数运算实现算法,汽车的多个油耗率

java - 关于 onPause 和 onResume 的建议

c++ - 为什么类方法不能调用同名的全局函数?

objective-c - 如何从 Objective-C 调用使用 class_getInstanceMethod 保存的方法?

java - 为什么不允许使用不同的泛型类型作为参数进行重载?