是否必须在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"));
上述两种方法有什么区别?如果我再做一个实例化“行”然后获取值的步骤?
答案 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中的方法结果覆盖。