Java基础--java注解

一、什么是java注解

一、概念

1、java注解:说明程序的,是给计算机看的,也叫元数据,一种代码级别的说明。又叫java标注,是jdk1.5引入的一种注释机制,与类、接口、枚举是在同一个层次,可以声明在包,类,字段,局部变量里面,方法参数等前面。用来对这些元素进行说明。

2、java注释:用文字描述程序的,主要是用来给程序员看的

二、作用分类

1、编辑文档:通过代码里标识的注解生成文档(javadoc xx.java)

2、代码分析:通过代码里标识的注解对代码进行分析(使用反射)

3、编译检查:通过代码里标识的注解让编译器能够实现基本的编译检查(Override)

三、java注解分类

1、jdk预定义注解:

1、@Override:标记在子类中是否重写了父类的方法,如果不是则会报错

2、@Deprecated:标记此方法已过时

3、@SuppressWarnings:压制警告

2、元注解:元注解可以理解为注解的注解

1、@Retention:标注注解的保存时期,一般有:SOURCE、CLASS、RUNTIME(当前描述的注解会被保留到class字节文件中,并被jvm读取到)

2、@Documented:使用此注解可以让注解保存到javadoc文档中

3、@Target:注解的类型,可以是在类上,方法上等

4、@Inherirted:标注注解是否可以继承

3、新增注解:

1、@SafavarArgs:忽略方法或者构造方法的参数为泛型所产生的警告

2、@FuntionalInterface:标注一个函数性接口

3、@Repeatable:标识某注解可以在同一个声明上使用多次

二、自定义注解

 一、格式:

public @Interface 注解名称{

        属性列表;

}

 二、本质:

注解本质上就是一个接口,该接口默认继承Annotation接口

public interface test extends java.lang.annotation.Annotation{}

三、属性 :接口中的抽象方法

1、属性的返回值有下列取值

1、基本数据类型

2、String

3、枚举

4、注解

5、Class

6、以上类型的数组

2、定义了属性,在使用是需要给属性赋值

1、如果定义属性时使用了关键字default给属性设置了默认值,那么在使用时就可以不用给属性赋值,而这个时候会使用默认值

2、如果只有一个属性需要赋值,并且属性的名称是value,则value可以省略,直接赋值即可

3、如果需要赋值的是数组类型,则需要使用{}包裹,如果数组中只有一个值,则{}可以省略

 四、在程序中使用注解

一、步骤:

主要是获取注解中定义的属性值

1、获取注解定义的位置的对象(Class,Method,Field)

2、获取指定的注解

3、调用注解中的抽象方法获取配置的属性值

二、栗子

1、创建自定义注解

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@Inherited
public @interface Test{
    String value();
}

2、使用自定义注解 

public class TestClient {
    @Test(value="test example")
    public void test(){
        System.out.println("test example");
    }
}

3、测试

public class TestDemo {
    public static void main(String[] args) throws Exception {
        TestClient testClient =new TestClient ();
        Method method=testClient .getClass().getMethod("test");
        if(method.isAnnotationPresent(Test.class)){
            Test test=method.getAnnotation(Test.class);
            System.out.println("Value : "+test.value());
            //执行方法
            method.invoke(testClient); }
            }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值