private ArrayList<String> colors = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)
看看上面的例子,泛型的主要观点是在集合上强制执行类型.因此,我没有在程序员自行决定的情况下将一个"对象"数组转换为字符串,而是在ArrayList中对集合强制执行"String"类型.这对我来说是新的,但我只想检查一下我是否正确理解它.这种解释是否正确?
到目前为止,这不是泛型的唯一用途,但绝对是最明显的.
泛型可以(并且)在许多不同的地方使用,以确保静态类型安全,而不仅仅是集合.
我只想提一下,因为你会遇到泛型可能有用的地方,但是如果你坚持使用泛型/收藏协会,那么你可能会忽略这一事实.
是的,基本上就是这样。在泛型出现之前,必须创建一个对象的 ArrayList。这意味着可以将任何类型的对象添加到列表中 - 即使您只想让 ArrayList 包含字符串。
泛型所做的就是添加类型安全。也就是说,现在 JVM 将确保列表中的任何对象都是 String,并阻止您将非 String 对象添加到列表中。更好的是:此检查是在编译时完成的。