public class A{
public A(int[] a){}
}
public class B extends A{
public B(double[] b){
super({b.length}); //ERROR
}
}
Я хочу иметь возможность скомпилировать код выше.Чтобы уточнить, у меня есть класс A и B, который расширяет его.Класс A не имеет пустого конструктора параметров.Если я не помещу вызов super в конструктор класса B в первой строке, он попытается вызвать super (), которого не существует.Но я хочу вместо этого назвать super (int [] a).Я хочу сделать это, взяв длину заданного двойного массива и отправив его в виде массива длиной 1. Это не позволяет мне сделать это, потому что, очевидно, вы не можете объявить такой массив, и если бы я объявил егов отдельной строке он сначала вызовет super (), и это не сработает.
Есть ли способ объявить int [] на лету таким образом?Или здесь единственное решение - создать конструктор для A без параметров или создать собственную функцию, возвращающую int []?
(Не спрашивайте, почему я хочу отправить его в виде такого массива.)