簡體   English   中英

如果不同的Java泛型類型參數具有相同的名稱,為什么可以為其分配不同的類型?

[英]If different Java generic type parameter have the same name, why it can be assigned different types?

在oracle的官方java文檔Type Inference章節中,有一個這樣的例子:

static <T> T pick(T a1, T a2) { return a2; }  
Serializable s = pick("d", new ArrayList<String>());

在這種情況下,類型參數是T但是傳遞了兩種不同的類型,不應該a1的類型與a2相同嗎?

推理算法確定參數的類型,如果可用,還確定分配或返回結果的類型。 最后,推理算法試圖找到適用於所有參數的最具體類型。

對於您的示例,最具體的類型是Serializable ,它是StringArrayList祖先。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM