真的是太複雜了...
簡單來說
第一個T:是限定傳進來的參數皆限定為T(針對後面有多個參數時有用)
第二個T:是方法回傳型態為T
第三個T:是傳進來參數為T
針對 Generic Methods 泛型方法
找了許多參考資料
這個好像比較容易了解
中文
http://wilberchao.blogspot.tw/2015/04/java-knowledge-wild-card-vs-generic.html
原廠說明
http://docs.oracle.com/javase/tutorial/extra/generics/methods.html