Я довольно новичок в Java и пытаюсь создать набор объектов, которые получены с помощью лямбда-выражений на карте.По сути, я получаю значение из карты (лямбда-выражение) и запускаю его, чтобы получить логическое значение.Тем не менее я получаю сообщение об ошибке при запуске .apply в выражении.Любые идеи о том, как это исправить?Любая помощь приветствуется.
Map<String, Predicate<IndexSub>> order_function = new HashMap<>();
order_function.put("AlternativesValues", x -> false);
order_function.put("AlternativesConstituent", x -> x.getCloseCons());
order_function.put("EquityValues", x -> false);
order_function.put("EquityCloseConstituent", x -> x.getCloseCons());
order_function.put("EquityOpenConstituent", x -> x.getOpenCons());
order_function.put("FixedValues", x -> false);
order_function.put("FixedReturns", x -> x.getCloseCons());
order_function.put("FixedStatistics", x -> x.getOpenCons());
//getCloseCons and getOpenCons return true/false
Set<String> orderable_sub = new HashSet<String>();
for (IndexSub s : tenant_subscriptions) {
//DataProduct is a string
if (order_function.get(DataProduct).apply(s) == true){
orderable_sub.add(s.getIndexId());
}
}