【问题标题】:Is it mandatory to instantiate a List (using Arraylist) in JAVA?是否必须在 JAVA 中实例化列表(使用 Arraylist)?
【发布时间】:2015-09-30 11:45:45
【问题描述】:

在JAVA中是否必须使用Arraylist实例化一个List才能对其进行一些操作?

我可以这样做吗:

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

这行得通吗?

我没有像这样实例化列表:

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

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

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

上面提到的两种方法有什么区别?如果我再做一步实例化“行”,然后为它获取值?

【问题讨论】:

    标签: java list arraylist instantiation


    【解决方案1】:

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

    列表行=htmltable.findElements(By.tagName("tr")); //将要 这份工作?

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

    “上面提到的两种方法有什么区别?”

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

    【讨论】:

    • 谢谢。您能否也回答一下:“上述两种方法有什么区别?”那就是再做一步并实例化它,然后将值添加到列表中。有什么区别吗?
    【解决方案2】:
    List<WebElement> rows=htmltable.findElements(By.tagName("tr")); //Will this work?
    

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

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

    首先,没关系。它将被 htmltable 中的方法的结果覆盖。

    【讨论】:

      猜你喜欢
      • 2021-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多