小编use*_*835的帖子

在构造函数(Java)中动态初始化数组

 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 []?

(不要问我为什么要把它作为这样的数组发送.)

java arrays constructor initialization

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

arrays ×1

constructor ×1

initialization ×1

java ×1