注解Annotation

1.注解:

注释是给程序员看的,为了说明代码的用途,增强代码的可读性。
注解是给编译器看的,为实现了某些功能,保证代码的正确性。
目的:
1、对代码进行规范
2、替代XML

2.使用注解:

在类、方法、语句上,添加以@开头的注解名称,可以以小括号设置一些属性
有哪些注解可以使用:
JDK中的三个基本注解:
1.@Override:被此注解修饰的方法必须是重写父类或实现接口,如果不是则报编译错误。
2.@Deprecated:被此注解修饰的方法为已过期,为了声明某些陈旧的方法,提醒使用者尽量不要再使用。
3.@SuppressWarnings:抑制警告
(属性值all,unused,rawtypes,deprecation/unchecked/null)

3.开发一个注解( @interface annotation):

public @interface 注解名{
public String name1();//普通属性在使用时必须进行赋值
public String id default “xx”;可以给属性设置默认值
public String value();//如果属性名为value,且在使用时只对此属性赋值则属性名可省略
}
注释中允许使用的属性的类型:字符串,八个基本类型,注解,类对象(Class),枚举。以上类型的一维数组。

仿JUNIT的注解及其功能

1 需求分析
模拟JUNIT的@Test注解来实现,被@Test注解所修饰的方法可以被运行。
2 技术分析:
什么是JUNIT:是一个Java执行单元测试的工具,Eclipse中默认支持此工具。
开发注解:public @interface xxx{}
反射:Class.getMethods()得到指定类中的所有方法对象
方法对象Method.isAnnotationPresend( Anno.class )判断当前方法是否有指定的注解修饰。
运行方法Mehtod.invoke
元注解:修饰注解的注解。@Retention(RetentionPolicy.RUNTIME)
注解的有效范围:
SOURCE:源代码(默认的级别)
CLASS:字节码
RUNTIME:运行时
3 步骤分析:
一、创建一个注解,名字MyTest,不需要属性。
二、创建一个测试类,编写一些方法,方法必须为公有、无返回值、无参。一部分方法由MyTest注解修饰。
三、编写测试用的main方法,得到测试类的类对象。
四、使用getMethods得到所有方法对象
五、对方法对象集合进行遍历
六、判断每个方法上是否有MyTest注解修饰
七、如果有,则调用此方法
4 代码实现

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

@Retention(RetentionPolicy.RUNTIME)
public @interface MyJunit {
}

public class Student {
    @MyJunit
    public void run1() {
        System.out.println("run1...");
    }
    public void run2() {
        System.out.println("run2...");
    }
    @MyJunit
    public void run3() {
        System.out.println("run3...");
    }
}

import java.lang.reflect.Method;

public class testJunit{
    public static void main(String[] args) throws Exception {
        Class clazz = Student.class;
        Object stu = clazz.newInstance();
        Method[] methods = clazz.getMethods();
        for(Method method:methods) {
            if (method.isAnnotationPresent(MyJunit.class)) {
                method.invoke(stu);
            }
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值