什麼是差分
public static<V> List<V> myMethod(V v){ return new ArrayList<V>();}
和
public static List<V> myMethod(V v){ return new ArrayList<V>();}
之間差是什麼<V>
返回類型的方法1層中的裝置的聲明之前?
什麼是差分
public static<V> List<V> myMethod(V v){ return new ArrayList<V>();}
和
public static List<V> myMethod(V v){ return new ArrayList<V>();}
之間差是什麼<V>
返回類型的方法1層中的裝置的聲明之前?
所不同的是簡單的:
的原因的第二一個不編譯是V
尚未聲明。
第二個編譯的唯一方法是如果該方法不是靜態的,並且該類有一個通用參數V
,從而爲所有實例方法聲明它。
在第一種方法中,V
是該方法的類型參數。
在第二種方法中,V
是一個類或接口類型。
請提供示例或將我指向其他一些提供良好示例和解釋的網站。我發現很難搜索這個。 – Bnrdo
第二種方法是一種常規方法,因此'V'必須是「正常」類型,即類或接口。第一種方法是「通用方法」,因此您需要了解Java泛型。 – irreputable
http://docs.oracle.com/javase/tutorial/java/generics/genTypeInference.html –
簡單的問題已經在StackOverflow上提出並回答了,爲什麼downvote?另外:可能是一個類似的問題:http://stackoverflow.com/questions/8381018/what-does-x-mean-in-java-method-declarations?rq=1 –
謝謝你,感謝你。 – Bnrdo