В этой конструкции кода:
public MyClass(Integer... numbers) {
do_something_with(numbers[]);
}
можно ли требовать, чтобы numbers
содержал хотя бы одну запись таким образом, что это проверяется во время компиляции? (Во время выполнения, конечно, я могу просто проверить number.length.)
Ясно, что я мог бы сделать это:
public MyClass(Integer number, Integer... more_numbers) {
do_something_with(number, more_numbers[]);
}
но это не будет очень элегантно.
Причина, по которой я хотел бы сделать это, - убедиться, что подкласс не просто забывает вызвать этот конструктор вообще, что по умолчанию вызывает вызов super()
без номеров в списке. В этом случае я хотел бы получить знакомое сообщение об ошибке: Implicit super constructor is undefined. Must explicitly invoke another constructor
.
Может ли быть другой способ добиться того же, что и некоторые @-нотации, которые отмечают этот конструктор как неявный?