java如何将List<string>作为可选参数?
以下是我正在进行的项目:
public class SESReqErrorIdAndArgs {
public String errorIdentifier;
public List<String> args = new ArrayList<>();
public SESReqErrorIdAndArgs(String errorIdentifier,List<String> arguments = new ArrayList<>()){
this.errorIdentifier = errorIdentifier;
this.args = arguments;
}
}
当我调用方法时,我想让第二个参数作为可选参数。我甚至不想将其作为null传递。我初始化参数(第二个参数)的方式是错误的。正确的方法是什么
# 1 楼答案
Java不支持可选参数。您可以提供具有不同参数的多个签名,如下所示:
请注意:(1)在
args
初始值设定项中指定new ArrayList<>()
没有意义,因为它总是会立即被丢弃;(2)通常最好对以这种方式传递的项进行防御性复制,因此这可能更好(因为Java 10):最后,根据您的用例,varargs可能是一个更好的选择: