List是一個(gè)接口。 List<String> list=new ArrayList<String>(); 在這里,假設(shè)我們正在創(chuàng)建列表接口的引用變量并將其分配給ArrayList實(shí)現(xiàn)接口的對(duì)象List。讓我們說(shuō)如果我們想獲得列表的大小。我們將使用list.size()它將使用運(yùn)行時(shí)多態(tài)性在內(nèi)部調(diào)用對(duì)象size()的方法ArrayList。List簡(jiǎn)單地說(shuō),我的意思是在類中實(shí)現(xiàn)的方法,ArrayList這就是我們能夠使用它的原因。問(wèn)題是,我如何能夠使用size()以及如何在哪個(gè) Class 中實(shí)現(xiàn) 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();我希望你們明白我的意思。當(dāng)我說(shuō)List<String> list= new ArrayList<String>(); 這意味著我將使用ArrayList方法作為運(yùn)行時(shí)多態(tài)性。但是在這種情況下...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();我能夠運(yùn)行該程序并執(zhí)行所有操作,但只想在此澄清一下概念。似乎我對(duì)一個(gè)小問(wèn)題感到困惑,但希望這種困惑消失。先感謝您
1 回答

慕姐8265434
TA貢獻(xiàn)1813條經(jīng)驗(yàn) 獲得超2個(gè)贊
Java中的變量可以有類型List
,但是不能實(shí)例化List
接口,即List
在內(nèi)存中創(chuàng)建類型的對(duì)象。內(nèi)存中的對(duì)象是實(shí)現(xiàn)接口的其他類型List
。
從中返回的對(duì)象findElements
實(shí)現(xiàn)了接口List
,但編譯器不知道該對(duì)象的實(shí)際類。您可以在運(yùn)行時(shí)使用getClass
方法查詢它,但這通常不是必需的,因?yàn)槟梢詫⑺暈橐粋€(gè)List
而不必確切知道List
它是什么類型。
當(dāng)您調(diào)用size
返回List
的 by時(shí)findElement
,JVM 會(huì)size
根據(jù)對(duì)象的實(shí)際類型選擇要使用的正確實(shí)現(xiàn)。因此,如果它恰好是 anArrayList
那么您將得到ArrayList.size
,等等。通常,從這樣的方法返回的類型List
不是通常的類型之一,java.util
而是一些針對(duì)手頭任務(wù)量身定制的自定義實(shí)現(xiàn)。
添加回答
舉報(bào)
0/150
提交
取消