我試圖做到的是設置#示例領域當前實施的子類的實例包裹在一個可選的,如果包含的回報上,我想所有的子類假返回一個可選#空檢查是否包含在子類
我有一個抽象類。
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類型的每個對象都是Example1或Example2,而不是兩者。 –
這聽起來像你有困惑的類與實例。你不會「遍歷子類」;您將循環訪問數組或實例的集合或流。 – VGR
每個類只有一個調用'contains()'的實現。 –