在Java中强制用户填充varargs参数的好方法

参见英文答案 > Requiring at least one element in java variable argument list                                    7个
我想在调用构造函数时强制用户填写可选参数:

public MyClass(String... params) {
    this.params = params;
}

目前,以下代码有效:

new MyClass();

我想阻止它.我想到了这个:

public MyClass(String param1, String... otherParams) {
    this.params = new String[1 + otherParams.length];
    this.params[0] = param1;
    // fill 1..N params from otherParams
}

String [] params不是一个选项,因为我需要能够使用逗号分隔的args.

有没有很好的解决方案来实现这一目标?请不要说varargs参数必须是可选的.问题不在于此.

也许以下,一个额外的默认构造函数?

/**
 * Please provide at least one parameter.
 */
@Deprecated
public MyClass() {
    throw new IllegalStateException("Please provide at least one parameter");
}
翻译自:https://stackoverflow.com/questions/31382106/nice-way-to-force-user-fill-varargs-parameter-in-java

转载注明原文:在Java中强制用户填充varargs参数的好方法