是否必须在JAVA中实例化List(使用Arraylist)?

时间:2015-09-30 11:45:45

标签: java list arraylist instantiation

是否必须在JAVA中使用Arraylist实例化List来对其执行某些操作?

我可以这样做:

List<WebElement> rows=htmltable.findElements(By.tagName("tr"));

这会有用吗?

我没有将List实例化为:

List<WebElement> rows = new ArrayList<WebElement>(); 

然后通过以下方式获取变量“rows”的值:

rows = htmltable.findElements(By.tagName("tr"));

上述两种方法有什么区别?如果我再做一个实例化“行”然后获取值的步骤?

2 个答案:

答案 0 :(得分:1)

使用您需要的实际对象,以及实际对象,而不仅仅是空引用。你如何获得这个对象,例如。通过自己实例化,作为参数或作为其他方法的返回值,并不重要。

  

列出rows = htmltable.findElements(By.tagName(&#34; tr&#34;)); //将   这项工作?

如果htmltable.findElements(By.tagName("tr"))返回List<WebElement>个对象,那么是的,它会起作用。

  

&#34;上述两种方法之间有什么区别?&#34;

创建一个新实例将创建一个新的独立实例(在ArrayList的情况下:一个空的列表对象)。如果您从方法中获取对象,则该方法的责任是创建或获取对象。它允许通过传递对象引用来重用不同方法中的对象。在您的情况下,您将使用您的htmltable的WebElement列表对象。如果这在您的用例中有意义,或者您需要使用新的实例,那么只有您可以知道。你还需要考虑是否需要操作列表,如果可以使用返回的列表(它是不可修改的吗?)以及对你的htmltable有什么影响。

答案 1 :(得分:0)

List<WebElement> rows=htmltable.findElements(By.tagName("tr")); //Will this work?

如果htmltable找到List objekt,它将起作用。在某些时候它必须已经初始化。如果你这样做

List<WebElement> rows = new ArrayList<WebElement>();
首先,没关系。它将被htmltable中的方法结果覆盖。