Почему я не могу вызвать метод из другого класса в этом цикле? - PullRequest
0 голосов
/ 03 февраля 2019

Я пытаюсь создать фильтр в классе Catalog, который впоследствии будет распечатывать «детали», цена которых превышает минимальную цену, введенную пользователем.Однако я не могу вызвать getNumPrice () (который находится в классе Part) из класса Catalog, и я не уверен, почему?Как я могу это исправить и что я делаю не так?

   //The following is in the Part class

 public double getNumPrice(){
        return this.price;
    }

//The following is in the Catalogue class

 private double readMinPrice(){
        System.out.println("Enter minimum price ('-1' for no filtering): ");
        return In.nextDouble();
    }

 private void filter(){
        String type =readTypeFilter();
        double minPrice = readMinPrice();

       if ( type== "all" && minPrice==-1)
            showParts();
        else if (type=="all" && minPrice >= 0)

            for(int i=0; i<= parts.size();i++)
                if (part.getNumPrice() >= minPrice)
                    System.out.println( i+1 + "." +  parts.get(i));
}

Ответы [ 2 ]

0 голосов
/ 03 февраля 2019

Вам необходимо использовать проиндексированную часть в вашем цикле.

for(int i=0; i<= parts.size();i++)
   if (parts.get(i).getNumPrice() >= minPrice)
0 голосов
/ 03 февраля 2019

У вас есть коллекция parts, и вы звоните part.getNumPrice() в своем цикле.

Я не вижу ни одного объявленного в вашем коде, но я предполагаю, что parts - это поле, и вы пытаетесь сделать что-то вроде parts.get(i).getNumPrice() в цикле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...