黑马程序员技术交流社区
标题:
(加强总结)总结
[打印本页]
作者:
赵永旗
时间:
2019-5-19 10:12
标题:
(加强总结)总结
反射
配置文件一般放在src包下
模拟框架
public class
Person {
public void
eat(){
System.
out
.println(
"人吃菜"
);
}
}
PZwenjian
className=com.itheima.Person
methodName=ea
public class
D1 {
public static void
main(String[] args)
throws
IOException, ClassNotFoundException, IllegalAccessException, InstantiationException, InvocationTargetException, NoSuchMethodException {
Properties p =
new
Properties();
InputStream is= D1.
class
.getClassLoader().getResourceAsStream(
"PZwenjian"
);
p.load(is);
is.close();
String className = p.getProperty(
"className"
);
String methodName = p.getProperty(
"methodName"
);
Class c = Class.
forName
(className);
Constructor con = c.getConstructor();
Object o = con.newInstance();
Method m = c.getMethod(methodName);
m.invoke(o);
单元测试 三个注解
@before 功能方法之前执行
@test Assert.
@after 功能方法之后执行
注解
@
override 检测方法是否继承自父类(接口)
@Deprecated 提示方法已过时
@SuppressWarnings 压制警告 一般传递参数"all"
@function 用于检测接口是否是函数式接口
自定义注解
属性 : 接口的抽象方法
1:返回值类型有下列
基本数据类型 String 枚举 注解 以上类型的注解
2:定义了属性,在需要时需要给属性赋值
1 如果赋值时 ,使用了default关键字给属性赋值,使用时可以不给属性赋值
2如果属性名叫value描述注解能够作用的位置 且只有一个属性 赋值时value可以省略
3数组赋值时需要{}
元注解:
用于描述注解的注解
1@target :描述注解能够作用的位置
ElementType 取值
type 类上
method 方法上
file 变量上
2@Retention: 描述注解被保留的阶段
source
class
runtime 一般都是这个值
@Retention(@Retentionpolicy.runtime ) 保留到runtime期间
3@Dcumented 表示该注解会被抽取到doc文档中
4@inherited 表示注解会自动被子类继承
解析注解
获取注解中的属性的值
1
获取定义注解的class对象
2 获取注解对象 getAnnotation(注解名.class)
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2