tru*_*ktr 22 java arrays types arraylist object
例如,而不是做
ArrayList<ClassName> variableName;
Run Code Online (Sandbox Code Playgroud)
你做
ArrayList variableName;
Run Code Online (Sandbox Code Playgroud)
然后你添加一个"ClassName"类型的对象
variableName.add(objectName);
Run Code Online (Sandbox Code Playgroud)
会自动将数组的类型设置为
ArrayList<ClassName>
Run Code Online (Sandbox Code Playgroud)
?
hvg*_*des 38
不.泛型仅适用于编译时.你只是失去了支票的好处.在运行时,所有通用信息都将被删除
换一种说法,
ArrayList<Type>
Run Code Online (Sandbox Code Playgroud)
在运行时只是一个ArrayList.仅仅在List上执行此操作的好处是,当您编写代码时,编译器将检查您是否在列表中放置了不适当的内容.
ste*_*tew 14
如果未指定,则与指定ArrayList <Object>的情况相同,这意味着可以将任何类型的对象添加到ArrayList中.在指定类时执行的类型检查是在编译时发生的,而不是在运行时发生的,所以它不可能按照你提出的方式工作(让它们在运行时确定更具体的类).
真正的类型是真的ArrayList.该ArrayList<ClassName>类型仅存在于编译器(这称为擦除),其目的是在编译器级别提供类型安全性.但是在字节码级别,您没有泛型类型的知识.