public class A{
public A(int[] a){}
}
public class B extends A{
public B(double[] b){
super({b.length}); //ERROR
}
}
Run Code Online (Sandbox Code Playgroud)
我希望能够编译上面的代码.为了澄清,我有A和B类扩展它.A类没有空参数构造函数.如果我没有在第一行的B类构造函数中调用super,它将尝试调用不存在的super().但是,我想调用super(int [] a)代替.我想通过获取给定双数组的长度并将其作为长度为1的数组发送来实现这一点.它不允许我这样做,因为显然你不能声明这样的数组,如果我要声明它在一个单独的行上它将首先调用super(),这将无法工作.
有没有办法像这样在运行中声明一个int []?或者这里唯一的解决方案是为A构造一个没有参数的构造函数,或者让我自己的函数返回一个int []?
(不要问我为什么要把它作为这样的数组发送.)