java注解学习

在学习期间中,学到了注解。关于注解,自己在这里学习总结如下:

1.注解这个机制是在jdk1.5及以后才有的。注解的使用可以使代码更加的简洁。在一些框架的使用中, 会使用到很多的xml,如果会使用注解的话,会使的代码会非常的简洁。

2.注解的作用还可以给与提示,如:Override可以提示

java SE 1.5 的内置三种注解

1.@Override  :重写的时候使用,子类重写父类的方法时可以使用,如果这个方法父类没有,也就是子类独有的方法,则使用这个注解会报错提示。所以一般重写的方法都建议使用这个注解,因为可以提示你这个方法是重写的,同时还会在你不小心写错方法名的时候提示你。

2.@Deprecated :这个注解的意思是表示这个方法是已弃用的。警告你要使用这个方法的话请慎用。

3.@SuppressWarnings:压制警告,关闭不当的编译警告信息

接下来讲讲自定义注解:

自定义注解的构建:

  public @interface demo{ }  

以上就是一个自定义注解

注解相当于一个特殊的类,在定义注解前,必须先连接一下元注解,声明注解属性还是方法什么的,声明注解的存活域。

1.@Target :这个元注解可以定义你自定义注解的具体用在什么地方,参数从ElementType里面选择。比如:

@Target(ElementType.METHOD)

public @interface demo{ }  :这个意思就是自定义注解使用在方法上面

ElementType里面有很多值,常用的如下:

  constructor:构造方法

  field:字段声明

  local_variable:局部变量声明

  method:方法声明

  parameter:参数声明

  package:包声明

  type:类、接口、enum声明

2.@Retention :在什么级别保留该注解,参数从RetentionPolicy里面取

有三种情况:

@Retention(RetentionPolicy.SOURCE) :表示在源代码级别保留该注解,当生成字节码文件时,就不会保留该注解了

@Retention(RetentionPolicy.CLASS) :表示在字节码文件中都保留这个注解,但是当加载到虚拟机里面运行的时候该注解不会保留

@Retention(RetentionPolicy.RUNTIME):表示在运行时都会保留该注解

3.@Documented :将此注解包含在生成的javadoc文档里面

4.@Inherited :注解可以被继承  这方面我也不怎么懂,有关言语就不乱讲,以免误导,如果有哪位大牛对@Inherited了解的,麻烦请在评论区评论一二,在下感激不尽!

原文地址:https://www.cnblogs.com/1998xujinren/p/11165212.html