Java 注解(Annotations)

这篇具有很好参考价值的文章主要介绍了Java 注解(Annotations)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Java注解

Java注解是我们程序源代码的元数据(有关数据的数据)。

它们向编译器提供关于程序的附加信息,但不是程序本身的一部分。这些注解不会影响已编译程序的执行。

注解以@开头。其语法为:

@AnnotationName

让我们以@Override注解为例。

@Override注解指定了已标有此注解的方法重写用同样名称的方法,返回类型和参数列表中的父类的方法。

重写方法时,不是必须使用@Override。但是,如果我们使用它,编译器会在重写方法时,如果出现错误(比如错误的参数类型),就会给出一个错误。

注解格式

注解也可以包括元素(成员/属性/参数)。

1.标记注解

标记注解不包含成员/元素。它仅用于标记声明。

其语法为:

@AnnotationName()

由于这些注解不包含元素,因此不需要括号。例如,

@Override

2.单元素注解

单个元素注解仅包含一个元素。

其语法为:

@AnnotationName(elementName = "elementValue")

如果只有一个元素,则习惯上将该元素命名为value。

@AnnotationName(value = "elementValue")

在这种情况下,也可以移除元素名称。元素名称value默认为。

@AnnotationName("elementValue")

3.多元素注解

这些注解包含多个用逗号分隔的元素。

其语法为:

@AnnotationName(element1 = "value1", element2 = "value2")

注解位置

任何声明都可以通过将其放在声明上面来标记注解。从Java 8开始,注释也可以放在类型之前。

1.在声明语句上方

如上所述,Java注释可以放在类,方法,接口,字段和其他程序元素声明的上方。

示例2:@SuppressWarnings注释示例

import java.util.*;

class Main {
  @SuppressWarnings("unchecked")
  static void wordsList() {
    ArrayList wordList = new ArrayList<>();

    //这将导致未经检查的警告
    wordList.add("nhooo"); 

    System.out.println("Word list => " + wordList);
  }

  public static void main(String args[]) {
    wordsList();
  }
}

输出结果

Word list => [nhooo]

如果上述程序在不使用@SuppressWarnings("unchecked")注解的情况下进行编译,则编译器仍将编译该程序,但会给出如下警告:

Main.java uses unchecked or unsafe operations.
Word list => [nhooo]

我们收到警告

Main.java uses unchecked or unsafe operations

因为下面的语句。

ArrayList wordList = new ArrayList<>();

这是因为我们尚未定义数组列表的通用类型。 我们可以通过在尖括号<>中指定泛型来解决此警告。

ArrayList<String> wordList = new ArrayList<>();

2.类型注解

在Java 8之前,注释只能应用于声明。现在,也可以使用类型注释。这意味着我们可以在使用类型的任何地方放置注解。

构造函数调用

new @Readonly ArrayList<>()

类型定义

@NonNull String str;

此声明指定String类型的非空变量str,以避免NullPointerException。

@NonNull List<String> newList;

该声明指定String类型的非空列表。

List<@NonNull String> newList;

该声明指定String类型的非空值的列表。

类型转换

newStr = (@NonNull String) str;

extends 和 implements 子句

class Warning extends @Localized Message

throws 子句

public String readMethod() throws @Localized IOException

类型注释使Java代码可以得到更好的分析,并提供更强大的类型检查。

注解类型

1. 预定义的注解

  1. @Deprecated

  2. @Override

  3. @SuppressWarnings

  4. @SafeVarargs

  5. @FunctionalInterface

2. 元注解

  1. @Retention

  2. @Documented

  3. @Target

  4. @Inherited

  5. @Repeatable

注解的使用

  • 编译器指令 - 可用于向编译器提供指令,检测错误或禁止警告。 如内置的注解@Deprecated,@Override, @SuppressWarnings。

  • 编译时指令 - 这些批注提供的编译时指令帮助软件构建工具生成代码,XML文件等。

  • 运行时指令 - 可以定义一些注解以在运行时向程序提供指令。这些注解是使用Java 反射访问的。文章来源地址https://www.toymoban.com/news/detail-622425.html

到了这里,关于Java 注解(Annotations)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java开发者的Python快速进修指南:异常捕获

    在之前的学习中,我们已经讲解了函数和控制流等基本概念。然而,在接触实际业务时,你会发现异常捕获也是必不可少的一部分,因为在Java编程中,异常处理是不可或缺的。Python的异常捕获与Java的异常捕获原理是相同的,只是在写法上有一些区别。它们的目的都是为了处

    2024年02月05日
    浏览(82)
  • 12. Java异常及异常处理

    1. 异常 异常 :在程序执行过程中发生的意外状况,可能导致程序中断或产生错误结果 异常对象 :java(面向对象)将错误用类来描述,一旦程序执行错误,将会创建对应的错误对象(用以向程序员或用户展示错误原因等) 异常处理的意义 :提高代码的健壮性和可靠性,使程

    2024年02月07日
    浏览(40)
  • java异常处理机制(二)之异常处理与捕获

    1 Error(错误): 是指程序无法处理的错误,表示运行应用程序时比较严重的问题。大多数错误与代码编写者执行的操作无关,而表示代码运行时JVM(Java 虚拟机)出现的问题。 2 异常(Exception): 是指在程序执行时由于程序处理逻辑上的错误而导致程序中断的一种指令流。通俗的

    2024年02月05日
    浏览(108)
  • Java 异常处理以及如何捕获和处理多个异常

    在Java中,我们使用异常处理程序组件try,catch和finally块来处理异常。 为了捕获和处理异常,我们将try...catch...finally代码块放置在可能产生异常的代码周围。finally块是可选的。 try...catch...finally的语法为: 可能会生成异常的代码放在try块中。 每个try块后面应紧跟着catch 或 fi

    2024年02月14日
    浏览(44)
  • Java注解编译期处理AbstractProcessor详解

    我们接触的注解主要分为以下两类 运行时注解 :通过反射在运行时动态处理注解的逻辑 编译时注解 :通过注解处理器在编译期动态处理相关逻辑 平时我们接触的框架大部分都是运行时注解,比如:@Autowire @Resoure @Bean 等等。 那么我们平时有接触过哪些编译期注解呢, @Lom

    2024年02月02日
    浏览(37)
  • java异常处理机制(三)常见异常

    Java常见的异常包括但不限于以下几种: 1. NullPointerException(空指针异常):当试图调用实例方法或访问实例变量时,对象引用为 null 时抛出。 2. ArrayIndexOutOfBoundsException(数组越界异常):当访问数组中不存在的元素时抛出。 3. ClassCastException(类转换异常):当试图将对象强

    2024年02月05日
    浏览(52)
  • Java面试题Java 中的异常处理

    Java 异常类层次结构图 在  Java 中,所有的异常都有一个共同的祖先  java.lang 包中的 Throwable 类 。 Throwable : 有两个重 要的子类: Exception (异常) 和 Error (错误) ,二者都是  Java 异常处理的重要子类,各自都包含大 量子类。 Error (错误) : 是程序无法处理的错误 ,表

    2024年02月02日
    浏览(48)
  • java: 模块循环不支持注解处理。请确保将循环中的所有模块排除在注解处理之外

    java: 模块循环不支持注解处理。请确保将循环中的所有模块排除在注解处理之外 大概意思是有循环依赖问题 解决方法: 选择模块依赖项 找到需要解决依赖的模块分析依赖,删除不需要的依赖 如果出现其他问题,再根据提示添加依赖即可

    2024年02月16日
    浏览(43)
  • JAVA使用反射机制和注解实现对信息的处理-----JAVA入门基础教程

    import java.lang.annotation.Annotation; import java.lang.reflect.Field; public class AnnotationTest { public static void main(String[] args) throws Exception { Class c = Class.forName(\\\"Customer\\\"); c = Customer.class; Table table = (Table)c.getDeclaredAnnotation(Table.class); System.out.println(table.value()); Annotation[] annotations = c.getDeclaredAnnotatio

    2024年02月15日
    浏览(46)
  • 【JAVA基础篇教学】第六篇:Java异常处理

    博主打算从0-1讲解下java基础教学,今天教学第五篇: Java异常处理。 异常处理是Java编程中重要的一部分,它允许开发人员在程序运行时检测和处理各种错误情况,以保证程序的稳定性和可靠性。在Java中,异常被表示为对象,它们是Throwable类的子类。常见的异常包括受检异常

    2024年04月13日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包