[英]extends keyword in return type in java method signature
我正在瀏覽下鏈代碼
我發現很多與此類似的方法簽名:
public <CMD extends Command<K, V, C>> CMD getCommand(String commandID)
此簽名與以下內容有何不同?
public Command getCommand(String commandID)
我能理解的唯一邏輯原因是進行類型檢查。 但我仍然無法從設計角度弄清楚這樣做的原因。
還有其他原因為什么要使用Java方法的返回類型並對其進行擴展 ?
區別是三倍:
作為一種類型化方法,java可以推斷出類型
所有這些都意味着它將編譯(不強制轉換):
Command<String, Integer, String> x = getCommand(commandID);
要么
SomeTypedSubClassOfCommand x = getCommand(commandID);
編譯器將基於將結果分配給變量的類型來推斷(即找出)方法的類型。
此外,您可以使用以下語法顯式指定一個子類:
Command<String, Integer, String> x = ContainingClass.<CommandSubClass<String, Integer, String>>getCommand(commandID);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.