【问题标题】:Passing array into a constructor and getting "cannot convert double[] to int" error [closed]将数组传递给构造函数并出现“无法将 double [] 转换为 int”错误 [关闭]
【发布时间】:2021-04-09 08:25:34
【问题描述】:

我试图将一个简单的数组传递给类的构造函数,并不断收到“无法将 double[] 转换为 int”错误。我真的不知道为什么。

import java.util.*;

public class Demo {
    public static void main(String[] args) {
        double[] data = {1,2,3,4,5,6,7,8,9,10,11,12};
        Rainfall[] rain = new Rainfall[data];   
    }
}


import java.util.*;

public class Rainfall {
    private double[] monthlyRain;

    public Rainfall(double [] array) {
        monthlyRain = array;
    }
}

我的 IDE 一直在“数据”下方显示一条红色波浪线

Rainfall[] rain = new Rainfall[data]; 

在 main 方法中。

【问题讨论】:

  • Rainfall rain = new Rainfall(data) 您需要使用括号而不是方括号。此外,构造函数只能创建一个对象。

标签: java arrays parameter-passing


【解决方案1】:

改用它...您错误地调用构造函数...使用Rainfall[] rain = new Rainfall[data];

public class Demo {
    public static void main(String[] args) {
        double[] data = {1,2,3,4,5,6,7,8,9,10,11,12};
        // Rainfall[] rain = new Rainfall[data];   wrong...
           Rainfall[] rain = new Rainfall[]{new Rainfall(data) }; // correct
    }
}

问题是...Rainfal[] 仅包含一组Rainfall 对象...不是一个... 所以这就是..正确的方法...抱歉错误...

【讨论】:

  • Rainfall[] rain = new Rainfall(data).. 不能将类实例分配给类数组是不正确的
  • 对不起..我错过了关于降雨的[],但错误是......你构建错误......检查编辑......
  • Rainfall[] 是一组 Rainfall 对象(数组)...这就是为什么我将它分配给另一个 Rainfall[]{}
  • @EurekaMark 几乎可以肯定只打算拥有一个 Rainfall,其中包含月份的数组,因此应该只有 Rainfall rainfall = new Rainfall(data)
  • @chrylis-cautiouslyoptimistic- 非常感谢。你的回答很有帮助,我明白我的逻辑在哪里。
猜你喜欢
  • 1970-01-01
  • 2013-04-23
  • 1970-01-01
  • 2013-03-28
  • 2021-04-13
  • 2021-02-06
  • 2023-03-31
  • 2014-03-23
  • 1970-01-01
相关资源
最近更新 更多