入门
方法参数化:main方法可以的,但封装成方法,传参
进阶
反射:具体某个类的方法名、类名、字段名参数化
高级、
泛型:将类型再参数化
反射语法
实例化:
非反射:把xxx类的构造器执行一下
反射:把叫xxx的类找到,再把这个类的构造器执行一下
Login login=new Login();
Class c = Class.forName(className);
Object obj=c.newInstance();
调方法:
非反射:把obj的xxx方法执行一下
反射:把xxx方法找到,再把这个方法执行一下
login.doGet(request,response);
Method m = c.getMethod("doGet", Request.class, Response.class);
m.invoke(obj,new Object[]{request,response});
设置字段:
非反射:把obj的xxx字段设值
反射:把叫xxx的字段找到, 再把这个字段设值
login.name="张三";
Field f=c.getField("name");
f.set("张三");
一、继承和接口
方式 | 关键字 | 对象 | 对象类型 | 个数 |
---|---|---|---|---|
继承 | extends | 类 | class | 1个 |
继承 | extends | 抽象类 | abstract class | 1个 |
实现 | implement | 接口 | interface | 多个 |
二、反射
对比项 | webdriver | 反射 |
---|---|---|
对象 | driver | class |
获取方式 | new ChromeDriver() | 类名.class |
实例变量名.getClass() | ||
类加载器:Class.forName("包名.类名") | ||
处理元素 | 标签 | 包、类名、构造器、字段、方法、注解、继承的父类、实现的接口 |
封装类 | WebElement | 包:Package |
构造器:Constructor | ||
字段:Field | ||
方法:Method | ||
注解:Annotation | ||
类、父类、接口:Class |
- 类型对象:Class类型的对象
- 类加载器:Class.forName()