То, что я пытаюсь выполнить, устанавливается в поле #example для текущего экземпляра поддиректория примера, завернутого в необязательный, если contains возвращает false во всех подклассах, которые мне нужны для возврата Необязательный # пустойПроверить, существует ли в подклассах
У меня есть абстрактный класс.
public abstract class Example {
public abstract boolean contains();
}
У меня тогда есть некоторые подклассы.
public final class Example1 extends Example {
@Override
public boolean contains() {
return true;
}
}
public final class Example2 extends Example {
@Override
public boolean contains() {
return true;
}
}
и у меня есть поле, чтобы определить, какой пример в настоящее время присутствует.
private final Optional<Example> example;
Есть ли способ перебрать подклассы и вернуть условие #contains?
что-то вроде
Optional<Class> clazz = Some sort of loop to check if the #contains condition returns true;
затем установить мой пример поля
if(clazz.isPresent()) {
setExample((Example) clazz.get());
}
все это псевдо-код, это не будет работать. Если вы, ребята, знаете, как это сделать, и могли бы объяснить мне, что это значило бы :)
Можете ли вы подробнее объяснить, что вы спрашиваете, когда вы говорите «есть способ перебрать подклассов и вернуть #contains состояние»? Что вы подразумеваете под циклом подклассов? Каждый объект типа Example представляет собой пример 1 или Example2, а не оба. –
Похоже, вы путаете классы с экземплярами. Вы не будете «перебирать подклассы»; вы будете проходить через массив или коллекцию или поток экземпляров. – VGR
Каждый класс имеет только одну реализацию 'contains()' для вызова. –