Использование класса для ArrayList внутри оператора switch - PullRequest
0 голосов
/ 07 мая 2018

Я пытаюсь использовать класс для представления данных, которые вводятся в список массивов. Введенные данные содержат строку E30, другую строку 1985 года, а затем переменную, содержащуюся в операторе swithc, ratingE30.

Я не могу заставить класс работать с массивом. Если я оставляю строки без кавычек, я получаю сообщение об ошибке не могу разрешить, но с ними это тоже не работает, так как говорит, что строка не совместима с моим классом Data.

Любая помощь будет оценена.

ArrayList находится в общедоступной статической пустоте main (String [] args):

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

Класс данных для ArrayList, расположенный в Main:

private static class Data{
    String Model;
    String ModelYear;

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

    }
}

Ответы [ 2 ]

0 голосов
/ 07 мая 2018

Сначала вы сказали, что пытаетесь использовать класс для представления данных. У него есть два поля, где находится поле рейтинга (или что вы хотите сделать с 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, запрашивает объекты данных, но то, что вы передали, было просто String, Int и я не уверен насчет последнего.

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

Если вы не уверены, как объекты / массивы работают, узнайте больше о них

0 голосов
/ 07 мая 2018

Я думаю, что вы хотите

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

Хотя это будет работать только в том случае, если вы добавите соответствующий конструктор в класс Data.

...