簡體   English   中英

Java泛型命名約定

[英]Java generics naming conventions

根據Java文檔

最常用的類型參數名稱是:

E - Element(Java Collections Framework廣泛使用)

K - 鑰匙

N - 數字

T型

V - 價值

S,U,V等 - 第2,第3,第4類型

但是,我看過這樣的代碼

public <R> Observable<R> compose(Transformer<? super T, ? extends R> transformer) {
        return ((Transformer<T, R>) transformer).call(this);
    }

這里是使用R,從哪個來源我可以找到R在這里的含義?

“結果”或“返回類型”。 前者在JDK 8類中特別常見。

考慮java.util.function.Function的JavaDocs,例如:

R - 函數結果的類型

模式<R>, ?R>不會出現在OpenJDK 7的類中(引用:我下載了源代碼並執行了grep),但它們確實出現在幾個類中,用於構建Java工具鏈本身,如javac。 在那里,R有時似乎代表“結果”有時代表“返回類型”。

這很簡單。 這里R代表“返回類型”。

如果你看“適配器設計模式”,將一種類型轉換為另一種類型,以使用兩個完全不同的接口。 在那里你可以找到這樣的通用值。

如果您正在編寫此方法來轉換或調用類型為T的對象並返回另一種類型的可觀察對象,那么您將使用哪種類型的返回值? 泛型類型命名沒有硬性規定。 這里唯一適用的規則是它應該簡短而有意義。

暫無
暫無

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

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