Почему java не позволяет мне использовать метод add () при создании метода? - PullRequest
0 голосов
/ 05 мая 2020

Появляется ошибка «Метод add(Shape) в типе ArrayList<Shape> не применим для аргументов».

Я хочу добавить данные из файла в ArrayList. Форма - это имя абстрактного класса, а класс, в котором я работаю, - это Helper класс.

Прошу прощения, я не очень разбираюсь в кодировании.

public static ArrayList<Shape> create(String fileName) throws FileNotFoundException, IOException{
    BufferedReader br = new BufferedReader(new FileReader(fileName));
    ArrayList<Shape> shapes = new ArrayList<>();

    String line = br.readLine();
    while(line != null){
        shapes.add();
        line = br.readLine();
    }

    br.close();
    return shapes;
}

1 Ответ

3 голосов
/ 05 мая 2020

shape - это ArrayList, который принимает Shape объектов. Когда вы вызываете shapes.add(), вам необходимо предоставить методу объект типа Shape, чтобы добавить его в этот список.

Итак, я не уверен, как создать новый Shape объект. Я предполагаю, что это как-то связано с тем, что вы читаете из этого файла. Если Shape принимает String arg в конструкторе ... это предположение, но ...

public static ArrayList<Shape> create(String fileName) throws FileNotFoundException, IOException{
    BufferedReader br = new BufferedReader(new FileReader(fileName));
    ArrayList<Shape> shapes = new ArrayList<>();

    String line = br.readLine();
    while(line != null){
        shapes.add(new Shape(line)); // create a new shape to add. 
        line = br.readLine();
    }

    br.close();
    return shapes;
}

Надеюсь, это поможет.

Обновление на основе вашего комментария:

public static ArrayList<String> create(String fileName) throws FileNotFoundException, IOException{
    BufferedReader br = new BufferedReader(new FileReader(fileName));
    ArrayList<String> shapes = new ArrayList<>();

    String line = br.readLine();
    while(line != null){
        shapes.add(line); // add String
        line = br.readLine();
    }

    br.close();
    return shapes;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...