Проблема с обращением к List<Object> из Main [закрыт]

108
24 ноября 2020, 00:50
Закрыт. Этот вопрос не по теме. Ответы на него в данный момент не принимаются.

Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском.

Закрыт 1 год назад.

Улучшить вопрос

Не могу из метода Main вызвать функции листа. Есть фигуры, которые мы можем запихивать в коробку. Коробка и является листом. Что не так? Помогите пожалуйста, люди добрые

Коробка:

import org.belsut.estryn.lessons.task02.figures.Figure;
import java.util.ArrayList;
import java.util.List;
public class Box {
    private List<Figure> box;
    public Box() {
        box = new ArrayList<Figure>();
    }
}

Main:

public class Main {
    public static void main(String[] args) {
        Box box = new Box();
        PaperCircle paperCircle = new PaperCircle(5);
        box.add(paperCircle); //add подчеркивает красным. 
                              //подсказывает: "Создайте метод add в классе Box"
    }
}
Answer 1

У вас в классе Box нет метода add(). Создайте метод add() в классе Box, либо создайте метод getBox(), возвращающий лист. Примеры реализации:

// класс Box
public void add(Figure figure) {
   box.add(figure);
}
// вызывайте этот метод также, как у вас в коде в вопросе

Или второй способ(более желательный):

// класс Box
public List<Figure> getBox() {
   return box;
}
// вот как  добавлять объекты
box.getBox().add(...);
Answer 2

Проблема решена. Необходимо класс Box унаследовать от ArrayList Спасибо @Sergey Gornostaev

public class Box extends ArrayList {
    @Override
    public boolean add(Object o) {
        if (this.contains(o)) {
            return false;
        }
        return super.add(o);
    }
}
READ ALSO
Отловить внезапное завершение программы

Отловить внезапное завершение программы

Мне необходимо отловить снятие программы с выполнения как это сделать? Событие windowDeactivated срабатывает не только в случае непредвиденного...

119
Как сделать так, чтобы программа решала математическое выражение, вводимое пользователем? [дубликат]

Как сделать так, чтобы программа решала математическое выражение, вводимое пользователем? [дубликат]

допустим у пользователь вводит "cosx/sinx+1", x нам известен (к примеру x = 5) Суть в том, что нельзя просто привести это всё к строке вида Mathcos(a)/Math

103
Переопределение методов add листа

Переопределение методов add листа

Не могу переопределить методы addВернее могу, но они не работают так, как нужно

78
Redirect с сохранением header

Redirect с сохранением header

Проблема в том, что я получаю 500 ошибкуА если я делаю тоже самое, но id передаю через куки, то всё нормально

100