廖雪峰Java4反射与泛型-2注解-1使用注解

1.Annotation定义

注解是放在Java源码的类、方法、字段、参数前的一种标签。如下

package com.reflection;

import org.apache.logging.log4j.core.tools.picocli.CommandLine;

import javax.annotation.PostConstruct;
import javax.annotation.Resource;
@Resource("Main")//带参数的注解
public class Main{
    @Inject
    int n;

    @PostConstruct
    public void hello(@Param  String name){
        System.out.println(name);
    }

    @Override
    public String toString(){
        return "hello";
    }
}

2.注解的作用:

  • 注解本身对代码逻辑没有任何影响
  • 如何使用注解由工具(如编译器)决定。写了注解,编译器会帮我们检查问题。否则不会检查。

3.使用注意事项

3.1编译器可以使用的注解:

  • @Override: 让编译器检查该方法是否正确的实现了覆写
  • @Deprecated: 告诉编译器该方法已经被标记作废,在其他地方引用将会出现变异警告。
  • @SuppressWarnings: 如果方法内部出现了编译警告,就忽略这些警告。

3.2注解可以定义配置参数:

  • 配置参数有注解类型定义
  • 配置参数可以包括:
    * 所有基本类型
    * String
    * 枚举类型
    * 数组(基本类型、String、枚举类型的数组)
public class Main{
    int n = 100;
    @Test(timeout=100)
    public void test(){
        System.out.println("test");
    }
}
  • 配置参数必须是常量
    * 缺少某个配置参数将使用默认值
    * 如果只写常量,相当于省略了value参数
    * 如果只写注释,相当于全部使用默认值
package com.reflection;

public class Main{
    @Check(min=0,max=100,value=55)
    public int n;

    @Check(value=99)//缺少某个配置参数将使用默认值
    public int p;

    @Check(99)//如果参数名称是value,可以省略参数名称
    public int x;

    @Check//如果只写注释,相当于全部使用默认值
    public int y;
}

4.总结

  • 注解是Java语言用于工具处理的标注
  • 注解可以配置参数,没有指定配置的参数使用默认值
  • 如果参数名称是value,可以省略参数名称
posted on 2019-02-19 19:56  singleSpace  阅读(307)  评论(0编辑  收藏  举报