在 java 变量参数列表中至少需要一个元素
2022-09-01 15:39:46
在此代码构造中:
public MyClass(Integer... numbers) {
do_something_with(numbers[]);
}
是否可以要求以这种方式包含至少一个条目,以便在编译时对其进行检查?(当然,在运行时,我只能检查 numbers.length。numbers
显然,我可以这样做:
public MyClass(Integer number, Integer... more_numbers) {
do_something_with(number, more_numbers[]);
}
但这不会很优雅。
我想这样做的原因是为了确保子类不会简单地忘记调用这个构造函数,这将默认为调用列表中没有数字的构造函数。在这种情况下,我宁愿得到熟悉的错误消息:。super()
Implicit super constructor is undefined. Must explicitly invoke another constructor
有没有另一种方法可以实现相同的目标,比如一些将这个构造函数标记为非隐式的@-annotation?