A. java泛型方法的問題
你這是Java泛型的一種錯誤用法,叫做「類型隱藏」,不過編譯是可以通過的。
你想要的效果其實應該這么寫:
classA
{
public<T>voidshow(Strings)
{
System.out.println(s);
}
publicstaticvoidmain(String[]args)
{
Aa=newA();
a.show(10);//此時這里會報錯。因為不是String類型的參數
}
}
但是你這么寫:
public<String>voidshow(Strings)
//或者public<String>voidshow(ints)之類的都一樣,都是錯誤的
就導致了類型隱藏,具體警告信息:The type parameter String is hiding the type String
所以編譯器會認為其實你寫的是:
public<T>voidshow(Ts)
所以即使參數是int類型,show()方法也能正常工作。
B. java類的泛型方法調用問題
泛型可以用"<T>"代表,任意類型的,泛型方法需要什麼方法類型,直接定義相應的參數即可。
解釋: 「<T>」是泛型的默認值,可以被任意類型所代替,如:
List<String> list = new ArayList<String>();這個就定義了一個String類型的」泛型「集合,那麼T的類型就是字元串。
List<String> list = new ArayList<String>();//此處就定義了一個list參數類型,
list.add("StringBatch");//賦值給list
User user = new User();
String str = user.get(list);//這個list就是一個泛型方法值,這行代碼就是泛型方法的調用。
C. java 泛型類和泛型方法的區別
在java中
泛型類:是在實例化類的時候指明泛型的具體類型。
泛型方法:是在調用方法的時候指明泛型的具體類型。
定義泛型方法時:必須在返回值前邊加一個<T>,來聲明這是一個泛型方法,持有一個泛型T,然後才可以用泛型T作為方法的返回值,泛型方法不是僅僅可以有一個參數Class<T>,可以根據需要添加其他參數。
定義泛型類時:Class<T>的作用就是指明泛型的具體類型,而Class<T>類型的變數C,可以用來創建泛型類的對象
D. JAVA中的泛型用法一種: <T> 返回值用法。
1、對於泛型方法來說,是可以接收不同類型的參數,比如下圖,使用泛型來操作List集合,然後向List中添加一條數據,看是否可以添加成功,創建泛型方法如圖所示。
E. java 中如何調用泛型的方法
這種也使用泛型,就很難達到設計的意願,維護起來也相對困難一些。
這要求不是泛型的使用,因為類型不確定,而是要使用反射的方法調用了。