簡體   English   中英

java-我不明白方法語法

[英]java - I don't understand method syntax

我上課:

public abstract class Entry{
    protected static <T extends Entry> List<T> all(Class<T> cls) {
        blah blah
    }

和它的孩子:

class Article extends Entry {
    public static List<Article> all() throws SQLException {
        return Entry.all(Article.class);
    }
}

我不明白該方法的語法:

protected static <T extends Entry> List<T> all(Class<T> cls)

為什么我們不能只這樣做呢?:

protected static List<T> all(Class<T> cls)
protected static <T extends Entry> List<T> all(Class<T> cls)

這意味着名為all的方法具有類型參數 T ,該參數必須是Entry的子類型(或Entry本身)。

Oracle Java教程中的泛型方法說明了語法及其含義。

為什么我們不能這樣做?:

 protected static List<T> all(Class<T> cls) 

因為編譯器不會自動用T知道,所以您是指類型參數而不是具體類型。

請注意,對於類型參數,類型參數的名稱通常使用單個大寫字母。 但這只是一個約定。 您可以使用任何有效標識符的名稱。

如果名稱應該是類型參數,則必須這樣聲明,否則Java編譯器會認為它是具體類型。

暫無
暫無

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

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