本文目錄一覽:
- 1、java中泛型的使用
- 2、JAVA中的泛型用法一種: 返回值用法。
- 3、java中如何得到泛型參數的class?
- 4、java怎麼傳遞泛型參數
- 5、北大青鳥java培訓:JAVA泛型淺談?
- 6、Java 泛型方法的入參參數如:id,如何id限制為String或者Number?
java中泛型的使用
一般使用在集合上,比如現在將一個字元串類型放在集合裡面,這時候,放入集合的字元會失去其本身的類型,只能是object類型,比如想要對這這個值進行轉換, 很容易出現類型轉換錯誤。可以使用泛型解決這個問題。
JAVA中的泛型用法一種: 返回值用法。
1、對於泛型方法來說,是可以接收不同類型的參數,比如下圖,使用泛型來操作List集合,然後向List中添加一條數據,看是否可以添加成功,創建泛型方法如圖所示。
2、然後在寫一個main方法來測試一下這個泛型方法,先向集合中添加一條String類型的數據,列印List集合中的元素,如圖所示。
3、上面是往List集合中添加了一個String類型的數據,下圖往List集合中添加一條Integer類型的數據並列印,當然也可以自己創建對象進行添加。
4、泛型也是可以限制要使用的參數類型的,比如上面,list集合中,只想加入數字類型的數據,當然也是可以的,只要讓類中的T繼承Number就行了,如圖所示。
5、下面在測試一下,向集合中添加一個Long類型的數據並列印,如圖所示。
6、最後輸出就完成了。
java中如何得到泛型參數的class?
泛型的目的就是為了避免強制類型轉換,所以直接取出來就是object的類型了。
public
class
classtest
{
public
static
void
main(string[]
args)
{
list
liststr
=
new
arraylist
();
liststr.add(“aaa”);
liststr.add(“bbb”);
system.out.println(liststr.get(0));
}
}
你想要的應該是這個吧,只要取出來就是你定義類型的object了,在這個例子中是string。如果你給它定義的是integer類型的泛型的話,取出來就是integer了。
java怎麼傳遞泛型參數
package test;
import java.util.ArrayList;
import java.util.List;
public class Node extends IModel{
public static void main(String[] args) throws InstantiationException, IllegalAccessException {
System.out.println(new Node().Nodetest(Node.class));
}
public T extends IModel ListT test(ClassT clazz) throws InstantiationException, IllegalAccessException{
ListT list= new ArrayListT();
T obj = clazz.newInstance();
list.add(obj);
System.out.println(list.get(0).getClass());
return list;
}
}
class IModel{
}
output:
class test.Node
[test.Node@1fb8ee3]
北大青鳥java培訓:JAVA泛型淺談?
1.概述 在引入泛型之前,Java類型分為原始類型、複雜類型,其中複雜類型分為數組和類。
java課程發現引入范型後,一個複雜類型就可以在細分成更多的類型。
例如原先的類型List,現在在細分成ListObject,ListString等更多的類型。
注意,現在ListObject,ListString是兩種不同的類型,他們之間沒有繼承關係,即使String繼承了Object。
2.定義使用 類型參數的命名風格為: 推薦你用簡練的名字作為形式類型參數的名字(如果可能,單個字元)。
最好避免小寫字母,這使它和其他的普通的形式參數很容易被區分開來。
使用T代表類型,無論何時都沒有比這更具體的類型來區分它。
這經常見於泛型方法。
如果有多個類型參數,我們 可能使用字母表中T的臨近的字母,比如S。
如果一個泛型函數在一個泛型類裡面出現,最好避免在方法的類型參數和類的類型參數中使用同樣的名字來避免混 淆。
對內部類也是同樣。
2.1定義帶類型參數的類 在定義帶類型參數的類時,在緊跟類命之後的內,指定一個或多個類型參數的名字,同時也可以對類型參數的取值範圍進行限定,多個類型參數之間用,號分隔。
定義完類型參數後,可以在定義位置之後的類的幾乎任意地方(靜態塊,靜態屬性,靜態方法除外)使用類型參數,就像使用普通的類型一樣。
注意,父類定義的類型參數不能被子類繼承。
2.2定義待類型參數方法 在定義帶類型參數的方法時,在緊跟可見範圍修飾(例如public)之後的內,指定一個或多個類型參數的名字,同時也可以對類型參數的取值範圍進行限定,多個類型參數之間用,號分隔。
定義完類型參數後,可以在定義位置之後的方法的任意地方使用類型參數,就像使用普通的類型一樣。
Java 泛型方法的入參參數如:id,如何id限制為String或者Number?
首先,你要理解為什麼使用集合框架:如果並不知道程序運行時會需要多少對象,或者需要更複雜方式存儲對象—可以使用java集合框架。
其次,稍微理解一下泛型的機制:將對象的類型作為參數,指定到其它類或者方法上,從而保證類型轉換的安全性和穩定性;本質是參數化類型;創建的集合只能存放中寫的類型元素,不能存放別的類型的元素,因此取出元素時也就不需要強轉了;泛型中不能存放基本數據類型等。
通俗的說,就是保證存入集合中的數據的安全性,例如,本來集合中可以存儲各種數據類型的數據有int,string,char等等,只是存進去之後就自動變成Object類型的啦。現在用泛型的話,就是一種約束,即只能存放我們規定的數據類型的元素,如:
ArrayListString students = new ArrayListString();
現在在集合中只能存放String類型的參數了,此時你要傳入的參數id就只能是String類型的啦。
ArrayListStudentstudents = new ArrayListStudent();
現在在集合中只能存放Studeng類型的參數了,存放其他數據類型時,就會出錯,所以說保證了數據的安全性。
基本就這麼多啦,可以多交流,相互幫助,希望可以幫到你呀!!!
原創文章,作者:CFMK,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/149837.html