在本教程中,我们将通过示例学习什么是注解,不同的Java注解以及如何使用它们。
Java注解是我们程序源代码的元数据(有关数据的数据)。
它们向编译器提供关于程序的附加信息,但不是程序本身的一部分。这些注解不会影响已编译程序的执行。
注解以@开头。其语法为:
@AnnotationName
让我们以@Override注解为例。
@Override注解指定了已标有此注解的方法重写用同样名称的方法,返回类型和参数列表中的父类的方法。
输出结果
在此示例中,方法displayInfo()同时存在于父类Animal和子类中Dog。调用此方法时,将调用子类的方法,而不是超类中的方法。
注解也可以包括元素(成员/属性/参数)。
标记注解不包含成员/元素。它仅用于标记声明。
其语法为:
@AnnotationName()
由于这些注解不包含元素,因此不需要括号。例如,
@Override
单个元素注解仅包含一个元素。
其语法为:
@AnnotationName(elementName = "elementValue")
如果只有一个元素,则习惯上将该元素命名为value。
@AnnotationName(value = "elementValue")
在这种情况下,也可以移除元素名称。元素名称value默认为。
@AnnotationName("elementValue")
这些注解包含多个用逗号分隔的元素。
其语法为:
@AnnotationName(element1 = "value1", element2 = "value2")
任何声明都可以通过将其放在声明上面来标记注解。从Java 8开始,注释也可以放在类型之前。
如上所述,Java注释可以放在类,方法,接口,字段和其他程序元素声明的上方。
输出结果
如果上述程序在不使用@SuppressWarnings("unchecked")注解的情况下进行编译,则编译器仍将编译该程序,但会给出如下警告:
我们收到警告
Main.java uses unchecked or unsafe operations
因为下面的语句。
这是因为我们尚未定义数组列表的通用类型。 我们可以通过在尖括号<>中指定泛型来解决此警告。
ArrayList<String> wordList = new ArrayList<>();
在Java 8之前,注释只能应用于声明。现在,也可以使用类型注释。这意味着我们可以在使用类型的任何地方放置注解。
构造函数调用
类型定义
@NonNull String str;
此声明指定String类型的非空变量str,以避免NullPointerException。
@NonNull List<String> newList;
该声明指定String类型的非空列表。
extends 和 implements 子句
class Warning extends @Localized Message
throws 子句
public String readMethod() throws @Localized IOException
类型注释使Java代码可以得到更好的分析,并提供更强大的类型检查。
1. 预定义的注解
2. 元注解
3. 自定义注解
这些注释类型在Java 注解类型教程中有详细描述。
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/java-jiao-cheng/14910.html