Java 是否有必要将泛型与ArrayList一起使用?

Java 是否有必要将泛型与ArrayList一起使用?,java,generics,Java,Generics,有必要将泛型与ArrayList一起使用吗?像这样: ArrayList<Object> software=new ArrayList<Object>(); Arraylist是一个动态数组,意味着在向列表中添加新项时会分配新内存。在创建arraylist之前,无需定义大小。要添加对象,只需调用软件的add方法。因为Java 7可以使用菱形操作符: ArrayList<Object> software=new ArrayList<>

有必要将泛型与ArrayList一起使用吗?像这样:

ArrayList<Object> software=new ArrayList<Object>();       

Arraylist是一个动态数组,意味着在向列表中添加新项时会分配新内存。在创建arraylist之前,无需定义大小。要添加对象,只需调用软件的add方法。

因为Java 7可以使用菱形操作符:

 ArrayList<Object> software=new ArrayList<>(); 

您的意思不是参数,而是泛型类型。您可以创建如下原始列表:

List list = new ArrayList();
它可以很好地工作,但是在Java中引入泛型的全部目的是修复原始列表。如果您存储的对象与Object不同,那么当您迭代列表并对每个元素调用一个方法时,可能会出错

从技术上讲,这是不必要的,而且您可以创建一个没有类型的ArrayList,让一切都正常工作

正如你所说的,你应该考虑到这一点,当你遇到一个你不能打字的情况时,你可能做错了什么。您可能应该研究多态性/继承或接口,以便在同一ArrayList中存储多种类型的对象

您希望键入所有ArrayList的主要原因是,当您尝试输入错误时,Java会告诉您。起初,你可能认为这是问题的根源,让它停止对你大喊大叫总比不这样好。但实际上,如果Java对你大喊大叫,你就做错了

在您的示例中,arrayList似乎只包含St_Sw对象。如果是这种情况,您可能希望使用以下内容制作ArrayList:

ArrayList<St_Sw> software=new ArrayList<St_Sw>();
如前所述,

List list = new ArrayList();
而且:

List<String> list = new ArrayList();
等于这个

List<String> a = new ArrayList<String>();  

这里不清楚您要问什么。没有必要,如果您不使用任何参数,它称为原始列表。您要添加什么对象?和how@MarounMaroun我的意思是我必须写这个>>@azeftalaml,它叫做泛型,而不是参数。我已经修正了你在问题中的措辞。@LuiggiMendoza鼓励进行小的编辑,只要我们不改变关键内容,我们就应该这样做。@Marounnaroun将其视为非Java开发人员。如果我错误地编辑了它,并使用了6而不是7,我会尝试它,然后出现错误。我认为指出软件版本不是一个小的编辑,但这可能是高度有争议的,我不想在这里挑起一场激烈的战争。没问题,我也花了一段时间才弄明白这一点。
List<String> list = new ArrayList<>();
List<String> a = new ArrayList<String>();