Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在ArrayList之前声明列表_Java_Arraylist - Fatal编程技术网

Java 在ArrayList之前声明列表

Java 在ArrayList之前声明列表,java,arraylist,Java,Arraylist,在此语句中,List MyList=new ArrayList 为什么要将Mylist声明为String类型的列表。只是为了使MyList成为ArrayList类型字符串的新实例 这似乎没有必要。将MyList声明为类型列表可以保证您不会使用仅适用于ArrayList的方法。这样,您可以在将来更改声明的右侧。列表只是一个接口,而不是一个实现。有许多不同类型的列表,例如ArrayList和LinkedList 因此,如果您将MyList声明为一个列表,它可能是任何类型的列表,正如@espertus

在此语句中,List MyList=new ArrayList

为什么要将Mylist声明为String类型的列表。只是为了使MyList成为ArrayList类型字符串的新实例

这似乎没有必要。

将MyList声明为类型列表可以保证您不会使用仅适用于ArrayList的方法。这样,您可以在将来更改声明的右侧。

列表只是一个接口,而不是一个实现。有许多不同类型的列表,例如ArrayList和LinkedList


因此,如果您将MyList声明为一个列表,它可能是任何类型的列表,正如@espertus所说,您可以在将来更改MyList的类型,而无需更改其声明。

套用Joshua Bloch的有效Java中的第52项,使用接口而不是类可以使周围的代码更加灵活。因此,如果您想将myList更改为类似于向量的内容,则根本不需要对周围的代码进行太多更改。Bloch接着说,有些时候,比如java的重大更新,其他类型的列表会被更新以提高效率,或者完全添加新的列表。

这样,如果明天你的老板说,我不想在我的代码中使用ArrayList,因为提醒我我的前妻改为使用LinkedList。因此,您只需更改一行即可。。这就是对象创建新的LinkedList,你遵循一个契约而不是一个实现,你忘记了实现的细节。@Sotirios Delimanolis和PakkuDon,好孩子有一个cookie。。。