[英]Java - ArrayList<> and LinkedList<> - class as an identifier
我不明白標識符在本示例中的作用,這是編程的新手,我意識到ArrayList<String>
創建了字符串列表,並且與LinkedList<String>
相同,但是當您按下類時會發生什么在標識符中,例如LinkedList<Song>
-,而Song
是一個類。 提前致謝。
public class Main {
private static ArrayList<Album> albums = new ArrayList<Album>();
LinkedList<Song> playlist = new LinkedList<Song>();
public static void main(String[] args) {
// write your code here
Album album = new Album("StormBringer" , "Deep Purple");
album.addSong("Stormbringer" , 4.6);
album.addSong("Love don't mean a thing" , 4.22);
String
是一個類,就像Song
也是一個類。 這意味着您只能將此類的對象插入List
。 不允許添加其他類的對象,因為類型不匹配。 嘗試這樣做將導致編譯錯誤。 因此,您的列表是類型保存。 此功能稱為泛型 。
但是,當您在
identifier
推送class
時會發生什么?
首先,這不是它的一個標識符Type
,這該是多么泛型工作,你傳遞一個Type
之間的<>
所以編譯器知道預期的Type
為這個泛型類(這里的集合)。 並且Collections List
, Set
...是泛型實現的好例子。
就像Song
是一個類一樣, String
也是java.lang
包中的預定義類,因此當您將一個類傳遞給集合時,編譯器將期望此集合中的所有元素都屬於此Type
。
例如在您的代碼中:
LinkedList<Song> playlist = new LinkedList<Song>();
所有playlist
項均應為Song
類的實例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.