Как записать регион, указанный c logi c отдельно от обычного потока? - PullRequest
0 голосов
/ 18 марта 2020

У меня есть имя класса ProductValidation, и в этом классе есть функция с именем validate, которая перебирает список продуктов. Внутри той функции, которая проверяет регион. Есть и другие функции, для которых указана область c. Я хочу переместить этот регион с указанием c проверок в другой класс. Как код ниже может быть импровизирован?

class Product{
    int id,
    long price;
    String region;

    Product(int id, long price, String region){
        this.id = id;
        this.price = price;
        this.region = region;
   }

   // getters for id,price and locId
}

Class ProductValidation{
   public static validate(List<Product> list, long[] prices){
     for(int i = 0; i < list.size();i++){
          if(list.get(i).getRegion().equals("ASIA"){ 
            long[i] = 0;
          }
      }
}


long[] price = {40, 90, 40};

List<Product> list = new ArrayList();
list.add(new Product(1,100, "ASIA"));
list.add(new Product(1,100, "AUS));
list.add(new Product(1,100, "EUROPE"));

 // call ProductValidation.validate(list, price)

1 Ответ

1 голос
/ 18 марта 2020

Вы можете представить этот тест как BiPrerdicate

BiPredicate<Product, String> productRegionSearch = (p,s) -> p.getRegion().equals(s);

и вызвать его как

if(productRegionSearch.test(list.get(i), "ASIA"))...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...