【问题标题】:Using a class for an ArrayList inside of a switch statement在 switch 语句中使用 ArrayList 类
【发布时间】:2018-10-17 03:03:54
【问题描述】:

我正在尝试使用一个类来表示输入到数组列表中的数据。输入的数据包含一个字符串 E30,另一个字符串 1985,然后是 swithc 语句中包含的变量 ratingE30。

我无法让该类使用数组列表。如果我留下不带引号的字符串,我会得到一个无法解析符号错误,但它也不起作用,因为它说字符串与我的类数据不兼容。

任何帮助将不胜感激。

ArrayList 位于 public static void main(String[] args ):

ArrayList<Data> arrayListToFile = new ArrayList<Data>();
arrayListToFile.add(new Data[]{"E30",1985,ratingE30});

位于 Main 中的 ArrayList 的数据类:

private static class Data{
    String Model;
    String ModelYear;

    Data(String Model,String ModelYear){
        this.Model=Model;
        this.ModelYear=ModelYear;

    }
}

【问题讨论】:

  • 您正在创建一个ArrayList&lt;Data&gt;,并且您正试图传递给某个ArrayList&lt;Data[]&gt;

标签: java string class arraylist switch-statement


【解决方案1】:

我想你想要

arrayListToFile.add(new Data("E30",1985,ratingE30));

尽管只有在你的 Data 类中添加适当的构造函数时才会起作用。

【讨论】:

    【解决方案2】:

    首先你说你正在尝试使用类来表示数据,它有两个字段,评分字段在哪里(或者你想用 ratingE30 做什么?)? 也许你想要的是这样的

    private static class Data{
        String model; 
        String modelYear;
        String rating; // I declared it as String because i have no idea what it contains
    
        Data(String model, String modelYear, String rating){
            this.model = model;
            this.modelYear = modelYear;
            this.rating = rating;
    
        }
    }
    

    其次,如果您想要一个数据对象列表,您应该将数据对象添加到您的列表中! 例如(使用上面的扩展类):

    ArrayList<Data> arrayListToFile = new ArrayList<Data>();
    arrayListToFile.add(new Data("E30", "1985", ratingE30);
    

    查看您的代码,我不确定您对 Data[] 数组有什么要求,但您初始化它的方式也是错误的,Data[] 数组就像 ArrayList 一样需要 Data 对象,但您传递的只是一个字符串,一个整数,我不确定最后一个。

    new Data[] {new Data("E30", "1985", ratingE30)};
    

    如果您不确定objects/arrays 的工作原理,请阅读更多信息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-27
      • 2021-12-08
      • 1970-01-01
      相关资源
      最近更新 更多