为了账号安全,请及时绑定邮箱和手机立即绑定

当我使用 findElements 时,如何实现 List<WebElement> 接口?

当我使用 findElements 时,如何实现 List<WebElement> 接口?

白衣染霜花 2023-04-13 15:21:24
List是一个接口。 List<String> list=new ArrayList<String>(); 在这里,假设我们正在创建列表接口的引用变量并将其分配给ArrayList实现接口的对象List。让我们说如果我们想获得列表的大小。我们将使用list.size()它将使用运行时多态性在内部调用对象size()的方法ArrayList。List简单地说,我的意思是在类中实现的方法,ArrayList这就是我们能够使用它的原因。问题是,我如何能够使用size()以及如何在哪个 Class 中实现 size 方法?List<WebElement> noOfRows=driver.findElements(By.xpath(".//*[@id='leftcontainer']//tbody/tr"));List<WebElement> noOfCol=driver.findElements(By.xpath(".//*/tr/th"));int rowSize=noOfRows.size();int colSize=noOfCol.size();我希望你们明白我的意思。当我说List<String> list= new ArrayList<String>(); 这意味着我将使用ArrayList方法作为运行时多态性。但是在这种情况下...driver.get("https://money.rediff.com/gainers/bse/daily/groupa?src=gain_lose");List<WebElement> noOfRows=driver.findElements(By.xpath(".//*[@id='leftcontainer']//tbody/tr"));List<WebElement> noOfCol=driver.findElements(By.xpath(".//*/tr/th"));int rowSize=noOfRows.size();//How I am able to use method of a List interfaceint colSize=noOfCol.size();我能够运行该程序并执行所有操作,但只想在此澄清一下概念。似乎我对一个小问题感到困惑,但希望这种困惑消失。先感谢您
查看完整描述

1 回答

?
慕姐8265434

TA贡献1813条经验 获得超2个赞

Java中的变量可以有类型List,但是不能实例化List接口,即List在内存中创建类型的对象。内存中的对象是实现接口的其他类型List

从中返回的对象findElements实现了接口List,但编译器不知道该对象的实际类。您可以在运行时使用getClass方法查询它,但这通常不是必需的,因为您可以将它视为一个List而不必确切知道List它是什么类型。

当您调用size返回List的 by时findElement,JVM 会size根据对象的实际类型选择要使用的正确实现。因此,如果它恰好是 anArrayList那么您将得到ArrayList.size,等等。通常,从这样的方法返回的类型List不是通常的类型之一,java.util而是一些针对手头任务量身定制的自定义实现。



查看完整回答
反对 回复 2023-04-13
  • 1 回答
  • 0 关注
  • 92 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信