簡體   English   中英

方法的擦除與另一種方法相同

[英]Erasure of method is the same as another method

https://postimg.cc/75ff28ST

從上圖中,為什么

<T extends Number> void method1(T t)  

<T extends Number, U extends List<String>> U method1(T t)

考慮相同的方法,但

<T> void method1(T t)

被允許?

讓我們來看看你的方法和它們的擦除:

  1.  <T extends Number> void method1(T t)

    會有擦除

    void method1(Number t)

    因為每個T都是Number或其子類之一。

  2.  <T extends Number, U extends List<String>> U method1(T t)

    有擦除

    List method1(Number t)

    同樣,因為每個T都是Number或者它的子類。

  3.  <T> void method1(T t)

    有擦除

    void method1(Object t)

    因為T可以是任何類。

如您所見,1. 和 2. 的擦除(沒有返回類型)是相等的。
3. 不同,所以允許作為過載。

暫無
暫無

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

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