Member 14103872 Ответов: 1

Ошибка нестатического метода в статическом контексте


Мне нужно сделать метод deleteorder, моя идея состоит в том, чтобы сравнить все книги, которые есть в магазине, с книгами, которые находятся в заказе, а затем увеличить количество на складе и удалить заказ.

public void deleteOrder(Customer customer, long idOrder){
    for (int i=0; i<=customer.getOrders().size(); i++){
        if(customer.getOrders().get(i).size()==idOrder){
            for(int j=0; j<=SessionMB.getBooks().size(); j++){ #here is the error  






####
public List<Books> getBooks(){
    return listBooks.allBooks();

####
public List<Books> allBooks(){
    TypedQuery<Books> query=em.createQuery("SELECT m FROM books m", books.class);
    return query.getResultList();

####
public void incStock(int quantity) {
    stock += quantity;

}


Что я уже пробовал:

У меня есть ошибка, делающая цикл со всеми книгами, которые есть в магазине, ошибка заключается в том, что "нестатический метод getBooks() не может быть сослан из статического контекста", и я не знаю, как ее решить.

1 Ответов

Рейтинг:
0

Richard MacCutchan

Послание совершенно ясное. То getBooks() метод определяется как часть заключающего класса, поэтому он может быть вызван только как метод экземпляра, например:

Library lib = new Library();
List<Books> newlist = lib.getBooks();

Ваш код (который вы не показываете) вызывает его следующим образом:
List<Books> newlist = getBooks();

из статического контекста.