Java - ArrayList<>和LinkedList<> - 作为标识符的类

时间:2017-11-15 08:04:32

标签: java arraylist linked-list declaration

https://imgur.com/nb6sjuK

我不知道标识符在这个示例中的作用,我是编程的新手,我意识到ArrayList<String>创建了字符串列表,与{{1}相同但是当你在标识符中推送一个类时会发生什么,例如 - LinkedList<String> - 而LinkedList<Song>是一个类。提前谢谢。

Song

2 个答案:

答案 0 :(得分:2)

String是一个类Song也是一个类。这意味着您只能将此类的对象插入List。不允许添加其他类的对象,因为类型不匹配。尝试这样做会导致编译错误。所以你的列表是类型保存。此功能称为generics

答案 1 :(得分:1)

  

但是当您在class中推送identifier时会发生什么?

首先,它不是标识符Type,这就是Generics的工作原理,您在Type之间传递<> ,因此编译器知道此Generic类(此处为Collection)的预期Type。收藏集ListSet ...是Generics实施的好例子。

Song一样, String 类也是java.lang包中的预定义类,所以当你通过时作为集合的一个类,编译器会期望此集合中的所有元素都是Type

例如在您的代码中:

LinkedList<Song> playlist = new LinkedList<Song>();

所有playlist项都应该是Song类的实例。