入門
方法參數(shù)化:main方法可以的,但封裝成方法,傳參
進(jìn)階
反射:具體某個(gè)類的方法名拱雏、類名、字段名參數(shù)化
高級(jí)底扳、
泛型:將類型再參數(shù)化
反射語法
實(shí)例化:
非反射:把xxx類的構(gòu)造器執(zhí)行一下
反射:把叫xxx的類找到铸抑,再把這個(gè)類的構(gòu)造器執(zhí)行一下
Login login=new Login();
Class c = Class.forName(className);
Object obj=c.newInstance();
調(diào)方法:
非反射:把obj的xxx方法執(zhí)行一下
反射:把xxx方法找到,再把這個(gè)方法執(zhí)行一下
login.doGet(request,response);
Method m = c.getMethod("doGet", Request.class, Response.class);
m.invoke(obj,new Object[]{request,response});
設(shè)置字段:
非反射:把obj的xxx字段設(shè)值
反射:把叫xxx的字段找到衷模, 再把這個(gè)字段設(shè)值
login.name="張三";
Field f=c.getField("name");
f.set("張三");
一鹊汛、繼承和接口
方式 | 關(guān)鍵字 | 對(duì)象 | 對(duì)象類型 | 個(gè)數(shù) |
---|---|---|---|---|
繼承 | extends | 類 | class | 1個(gè) |
繼承 | extends | 抽象類 | abstract class | 1個(gè) |
實(shí)現(xiàn) | implement | 接口 | interface | 多個(gè) |
二、反射
對(duì)比項(xiàng) | webdriver | 反射 |
---|---|---|
對(duì)象 | driver | class |
獲取方式 | new ChromeDriver() | 類名.class |
實(shí)例變量名.getClass() | ||
類加載器:Class.forName("包名.類名") | ||
處理元素 | 標(biāo)簽 | 包阱冶、類名刁憋、構(gòu)造器、字段木蹬、方法至耻、注解、繼承的父類镊叁、實(shí)現(xiàn)的接口 |
封裝類 | WebElement | 包:Package |
構(gòu)造器:Constructor | ||
字段:Field | ||
方法:Method | ||
注解:Annotation | ||
類尘颓、父類、接口:Class |
- 類型對(duì)象:Class類型的對(duì)象
- 類加載器:Class.forName()