我的問題是:我創建了一個 Arraylist serviceList
service1 和 service2 都是來自 2 個類的 2 個獨立物件,但它們具有相同的“執行”方法:
public Service1 service1;
public Service2 service2;
/*Then I add element to Arraylist:*/
serviceList.add(0, service1);
serviceList.add(1, service2);
/*then how can I run "excute" method of service1 and service2?
something like this:*/
for(Object service: serviceList){
service.execute();
}
我嘗試過 ArrayList< Class> ,但這是一個死胡同。謝謝你的回答:D
uj5u.com熱心網友回復:
介紹一個介面:
interface Service {
void execute();
}
class Service1 implements Service { ... }
class Service2 implements Service { ... }
List<Service> serviceList = ...
for (Service service: serviceList) {
service.execute();
}
uj5u.com熱心網友回復:
首先,ArrayList<T> 只能接受宣告的型別 T,所以你不能添加不同型別的物件,比如 K 到同一個 ArrayList 中。
解決方案 1
滿足您需求的解決方案可能是宣告ArrayList<Object> list然后添加這兩個服務。
解決方案 2
現在,因為您想要一個公共execute方法,所以您Service1和Service2類實作某個介面是很自然的,比如為每個類Service實作一個唯一的execute方法實作。你可以將你的 ArrayList 宣告為ArrayList<Service> list
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/398989.html
標籤:爪哇 春天 弹簧靴 春批 spring-batch-tasklet
