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

标签 java variadic-functions

<分区>

我想强制用户在调用我的构造函数时填写一个可选参数:

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。

有什么好的解决方案可以实现这个目标吗?请不要说可变参数必须是可选的。问题不在于此。

最佳答案

也许下面是一个额外的默认构造函数?

/**
 * Please provide at least one parameter.
 */
@Deprecated
public MyClass() {
    throw new IllegalStateException("Please provide at least one parameter");
}

关于java - 在 Java 中强制用户填充 varargs 参数的好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31382106/

相关文章:

c - 是否可以在 C 中使用没有非可变参数的可变参数函数?

c++ - 使用 va_copy 有什么意义?

java - 每 2 小时在 n 到 m 范围内的随机分钟触发一次 Jenkins 作业

java - TOCTOU 中的竞争条件是如何工作的?

c++ - 可以通过这种方式使用可变参数函数/模板吗?

将 va_list 转换为固定参数

java - 如何解决使用 JavaFX 创建的 GUI 中的 java.lang.IllegalStateException

java - Hikari 抛出错误 目标类 org.postgresql.ds.PGPoolingDataSource 上不存在属性 url

java - 未捕获的类型错误 : Cannot read property 'action' of null

Lua:任意数量的返回值