簡體   English   中英

Java泛型,類型變量范圍

[英]Java generics, type variable scope

之間有什么區別:

public <E>int  compareTo(E e) // first line (compilation error)

public int compareTo(E e) // second line (OK)

僅在第二行中,我通過了編譯器。 這是否意味着需要確保該特定元素在類中被通用聲明? 否則,您可以添加任何元素,並且沒有任何意義。 我是否以正確的方式看到它? 提前致謝。

將類型參數聲明放在返回類型之前:

public <E> int compareTo(E e) 

您也可以具有一個類級別的<E>類型參數,但是方法級別的參數將使其陰影。 閱讀更多有關此問題的信息

public <E extends String> int compareTo(E o) {  //1
}

您可以根據編程需要考慮使用任何類而不是String

對於正在實現Comparable接口的類,考慮以上情形。

class SimpleClass<E> {  // 2
    E var;  
    public <E> int compareTo(E o) {         
        return 0;
    }
}

如果不實現Comparable接口,則// 2處的上述類將起作用。 E不需要擴展String(任何其他類)。

暫無
暫無

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

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