- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第17章WEB17-基础加强篇
案例一:使用自定义注解完成@Test注解功能类似的效果:
需求
使用Junit是单元测试的工具.在一个类中使用 @Test 对程序中的方法进行测试.
自定义一个注解@MyTest 也将这个注解加在类的方法上. 使这个方法得到执行.
分析:
技术分析:
【注解】
程序中有 注释 和注解
* 注释:给开发人员.
* 注解:给计算机看的.
注解使用:学习框架支持注解开发.
【JDK提供的注解】
@Override :描述方法的重写.
@SuppressWarnings :压制警告.
@Deprecated :标记过时.
自定义注解:
定义一个类:class
定义一个借口:interface
定义一个枚举:enum
定义一个注解:@interface
【自定义注解案例】
@interface MyAnno1{
}
带有属性的注解:
@interface MyAnno2{
int a() default 1;
String b();
// 注解属性的类型:基本数据类型,字符串类型String,Class,注解类型,枚举类型,以及以上类型的一维数组.
// Date d();
Class clazz();
MyAnno3 m3(); // 注解
Color c(); // 枚举
String[] arrs();
}
@MyAnno4(aaa) // 如果属性名称为value 那么使用的时候 value可以省略(只出现这一个value的属性情况下).
public class AnnotationDemo3 {
}
@interface MyAnno4{
String value();
int a() default 1;
}
步骤分析:
定义一个测试类
public class AnnotationDemo3 {
@MyTest
public void demo1(){
System.out.println(demo1执行了...);
}
@MyTest
public void demo2(){
System.out.println(demo2执行了...);
}
public void demo3(){
System.out.println(demo3执行了...);
}
}
定义核心运行类:
在核心运行类中有一个主函数:
获得测试类中的所有的方法.
获得每个方法,查看方法上是否有@MyTest注解.
如果有这个注解,让这个方法执行.
代码实现:
通过元注解定义注解存在的阶段.
* 元注解也是一个注解:修饰注解的 注解.
自定义一个注解:
核心运行类:
public class CoreRunner {
public static void main(String[] args) {
// 反射:获得类的字节码对象.Class
Class clazz = AnnotationDemo3.class;
// 获得测试类中的所有的方法:
Method[] methods = clazz.getMethods();
// 遍历数组:
for (Method method : methods) {
// System.out.println(method.getName());
// 判断方法上是否有@MyTest注解:
boolean flag = method.isAnnotationPresent(MyTest.class);
// System.out.println(method.getName()+ +flag);
if(flag){
// 让这个方法执行:
try {
method.invoke(clazz.newInstance(), null);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
总结:
使用注解完成JDBC工具类的编写:(了解)
public class JDBCUtils {
private static String driverClass;
private static String url;
private static String username;
private static String password;
@JDBCInfo
public static Connection getConnection() throws Exception{
// 反射:
Class claz
您可能关注的文档
最近下载
- 国家基本药物培训通用课件.pptx VIP
- 园林绿化修剪标准.pdf
- 第1单元 活动1 发现身边的数据 课件2025湘科版信息科技四年级上册.pptx
- 《强直性脊柱炎》PPT课件.pptx VIP
- 练习使用显微镜课件(共15张ppt)(内嵌音频+视频).pptx VIP
- 新22G03 墙下扩展基础.docx VIP
- 重点语法知识梳理(一)-2023学年七年级英语上学期期末考点复习(牛津上海版).pdf VIP
- 公司二手车鉴定评估报告表.docx VIP
- 2017的qq号如何免费申请_qq号免费申请账号的方法教程.docx VIP
- DL_T 5852-2022 电气装置安装工程接地装置施工及验收规范.docx VIP
文档评论(0)