[英]Calling static method from type variable
我上課:
public class AbstractHandler {
public static void handle(){
throw new UnsupportedOperationException("Not implemented");
}
}
這將有一些子類。
我也有下面的類將要使用該類:
public class Consumer<T extends AbstractHandler>{
public static void handle(){
//I need to call the method
//T.handle() somehow
//Is that possible?
}
}
由於該方法是static
,因此無需知道T
到底是什么。
做就是了:
AbstractHandler.handle();
靜態方法不會被繼承。
因此,您具有AbstractHandler.handle
,這並不意味着每個T
應具有一個。
如果它們這樣做,那么它們也不是相同的方法-即使它們具有相同的名稱,它們之間也沒有連接。
由於您計划調用的方法是靜態的,因此只需調用:
AbstractHandler.handle();
...在您的Consumer#handle
方法主體中。
我懷疑這實際上是您想要執行的操作。
您可能希望將handle
的簽名更改為實例(即不是static
),並在Consumer#handle
方法主體中調用T.handle()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.