public class A{
public A(int[] a){}
}
public class B extends A{
public B(double[] b){
super({b.length}); //ERROR
}
}
我希望能够编译上面的代码。为了澄清,我有扩展它的类A和B.类A没有空的参数构造函数。如果我没有在第一行的B类构造函数中调用super,它将尝试调用super(),它不存在。但是,我想调用super(int [] a)。我想通过获取给定的double数组的长度并将其作为长度为1的数组来发送它。它不会让我这样做,因为显然你不能像这样声明一个数组,并且如果我要声明它在一个单独的行上,它会首先调用super(),这是行不通的。正在初始化构造函数中的数组(Java)
有什么办法可以像这样在动态声明int []吗?或者是这里唯一的解决方案或者为A创建一个没有参数的构造函数,或者让我自己的函数返回一个int []?
(不要问我为什么要送它像一个数组。)
谢谢,我不知道你可以同时声明和初始化这样的数组。这正是我正在寻找的。 – user828835
然而,你的第一个解决方案仍然不起作用,因为你在构造函数的第一行中缺少对super()的调用,所以它会被自动调用。但由于我缺少构造函数A(),这会导致错误。不过谢谢你。 – user828835
第一个例子不会编译。你需要在第一行调用super/this构造函数。第二次通话+1。 – user802421