Java 对于集合,我们何时更喜欢使用对象类型,何时使用基元类型

Java 对于集合,我们何时更喜欢使用对象类型,何时使用基元类型,java,generics,collections,types,Java,Generics,Collections,Types,比如说 ArrayList<int> al = new Arraylist<int>(); 忽略ArrayList声明中的类型。这是一种好的做法吗 我应该总是显式地声明类型,还是这是Java的惯例,只要可能就省略一些东西?在使用Java 5时,应该总是使用类型+ 好 你有点跳进了未来- 目前,不允许使用集合上的原语以及原语类型上的泛型,并且语句ArrayList al=new ArrayList;不会编译 这就是为什么引入Integer、Double等包装类型的原因之一

比如说

ArrayList<int> al = new Arraylist<int>();
忽略ArrayList声明中的类型。这是一种好的做法吗


我应该总是显式地声明类型,还是这是Java的惯例,只要可能就省略一些东西?

在使用Java 5时,应该总是使用类型+


你有点跳进了未来-

目前,不允许使用集合上的原语以及原语类型上的泛型,并且语句ArrayList al=new ArrayList;不会编译

这就是为什么引入Integer、Double等包装类型的原因之一。有了它们,我们可以在集合中存储用布尔值包装的数字和布尔值


据我所知,该功能计划在JDK10的下一个平台版本中引入,但时间会告诉我们这将被删除还是将被实现。

在处理泛型时使用原始类型不是一个好习惯。 正如其他海报所说,不可能将基元类型用作泛型类型

ArrayList<int> al = new Arraylist<int>();

不会编译。在java1.5之前,您必须使用Integer box类,您可以在不使用泛型的情况下创建ArrayList。。像

ArrayList a= new ArrayList();
这意味着您的数组列表可以包含任何对象。由于对象类是所有类的超类,因此可以将任何对象插入其中。 但它有一个缺点。。当使用get方法时,必须将对象强制转换回

在Java1.5及更高版本中,您可以为特定类型创建和创建ArrayList

ArrayList<type> obj= new ArrayList<type>();
这确保了类型确保,并且从列表中获取时不必强制转换对象

使用Java1.5中的集合 可以存储对象和对象的子类。不能存储像int这样的基元类型。 因此,为了在ArrayList中存储int,在定义ArrayList时必须使用相应的包装器类


Java将使用一种称为自动装箱/出箱的机制自动将整数转换为整数或整数转换为整数。

ArrayList al=new ArrayList;这是不可能的。作为提醒,你在第一个问题中有一些拼写错误:Arraylist;应该是ArrayList;注意大写字母L,ArraList应该是ArrayList,Ingeter`应该是整数。谢谢@Chris,我刚刚在记事本中键入并复制了它。很抱歉输入错误。奇怪的问题是,您甚至没有尝试运行此代码并检查是否可以在泛型中使用原语类型。我对此表示怀疑,尽管我可能是错的,因为Oracle宣布计划将原语从Java Allowed Java 10中删除。你在哪里读到/听说这将被介绍?谢谢。“我现在拿到了。”斯图尔图斯克,看看我提供的链接。我不知道这会发生,但至少他们会讨论。
ArrayList<int> al = new Arraylist<int>();
ArrayList al = new ArrayList();
ArrayList<int> al = new Arraylist<int>();
ArrayList a= new ArrayList();
ArrayList<type> obj= new ArrayList<type>();