[英]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.