天天看點

java參數傳入泛型類型_Java綜合:泛型方法及動态參數

是以我們也可以采用以下的方法進行調用:

Lists ints = Lists.toList(new Integer[]{1,2,3});

不過在使用vararg功能時,需要留意的是,當方法中待傳入的參數除了動态參數外,還有其它參數,則必須将動态參數方法在參數清單的最後面,例如:

public static void addAll(List list, T… arr);

(3) 調用泛型方法時顯式給定類型參數的問題

我們在調用泛型方法時,還有一個要注意的地方是,是否在調用時顯式地寫明類型參數(type parameter),例如:

< 1>List< Integer> ints = Lists< Integer>.toList();

< 2>List< Object> objs = Lists< Object>.toList(1, “abc”);

一般的情況下,其實都不需要顯式地指明類型參數,但對于上面的兩種情況,可能就非常有必要。

上面的< 1>式,我們沒有傳入任何參數,這樣的話,類型推斷算法就無法确定在方法内部的類型是什麼了。

上面的< 2>式,我們第一個參數傳入整數,第二個參數傳入字元串,你可能會認為,類型推斷算法應該會推斷出Integer及String的基類是Object,但是Integer及String,同時實作了Serializable和Comparable接口,這樣類型推斷算法就不能在這三者中作出正确的選擇了。