java虚拟机:01_java反射总结

入门

方法参数化: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
  1. 类型对象:Class类型的对象
  2. 类加载器:Class.forName()

三、注解

四、泛型

你可能感兴趣的:(java虚拟机:01_java反射总结)