JavaWeb
1.单元测试命名规则
一般是类+Test, test+方法名
一般比较自己的结果是用断言 Assert.assertEquals(正确的结果,你运行时的结果);
注解
@Test 导入junit 后直接运行,注解的关键字
@Before 加载资源时的关键字 会运行在单元测试之前
@After 释放资源时的关键字 会运行到单元测试之后
反射
框架:半成品的软件,可以简化代码
反射:将类的各个组成部分封装为其他对象,这就是反射机制
好处:
1.可以在程序运行的过程中,操作这些对象
2.可以解耦,提高程序的可扩展性
JAVA 代码经历了 Source 源代码阶段 Class类对象阶段,Runtime 运行时阶段
其中class类对象阶段就是class的反射。
获取class对象的方法
1.Class.forName("全名类“)
2.类名。class:通过类名的属性class获取
3.对象.getclass()
成员变量Field[] fields
构造方法Constructor[] cons
成员方法 Method[] methods
1.获取成员变量们
获取public 的成员变量
*Fipld[] getFields()
FieldgetField(String name)
获取所有的成员变量(当存在私有的成员变量时会报错,需添加setAccessible 暴力反射忽略)
*Field[] getDeclaredFields( )
*Field getDeclaredField(String name)
set() get()方法查找和修改
2.获取构造方法们
newInstance方法修改,如果是空的构造方法可以直接 类名.class.newInstance
Constructor<?>[]getConstructors(
- Constructor getConstructor(类<?>… parameterTypes)
- Constructor getDeclaredConstructor(类<?>… parameterTypes)
- *Constructor<?>[getDeclaredConstructors()
3.获取成员方法们:
invoke()直接执行方法们
Method[] getMethods()
*Method getethod(String name,类<?>… parameterTypes)
*Method[] getDeclaredMethods( )
- Method getDeclaredMethod(string name,类<?>… parameterTypes)
4.获取类名
多String getName( )
元注解:用于描述注解的注解
@Target:描述注解能够作用的位置
@Retention:描述注解被保留的阶段
@Documented:描述注解是否被抽取到api文档中
@Inherited:描述注解是否被子类继承