首页 > 编程语言 >Java语言常用注解(Annotation)收录

Java语言常用注解(Annotation)收录

时间:2024-06-23 18:27:20浏览次数:23  
标签:Java void 用途 public 编译器 注解 Annotation

Java语言常用注解(Annotation)收录

注解(Annotation)是一种用于在代码中插入元数据的方式,以便为编译器、开发工具或运行时环境提供信息。自Java 5引入以来,注解已成为Java平台不可或缺的一部分,用于各种场景,如编译时检查、框架集成、依赖注入等。

下面收录了一些开发过程中常用的注解供参考

1. @Override

  • 用途:指示一个方法重写了父类中的方法,或者实现了一个接口的方法。编译器会检查这个声明,确保方法的确被重写或实现了。

    @Override
    public void someMethod() {
        // 方法实现
    }
    

2. @Deprecated

  • 用途:标记某个类、方法或字段已不建议使用,并可能在未来的版本中移除。编译器遇到使用了此注解的元素时,通常会发出警告。

    @Deprecated
    public void oldMethod() {
        // 过时方法的实现
    }
    

3. @ SuppressWarnings

  • 用途:压制编译器发出的特定警告信息。可以指定一个或多个警告类型。

    @SuppressWarnings("unchecked")
    public List<String> getElements() {
        // 可能产生未检查的转换警告的代码
    }
    

4. @FunctionalInterface

  • 用途:标记一个接口为函数式接口,即该接口只有一个抽象方法。Java 8引入,用于lambda表达式的类型声明。

    @FunctionalInterface
    public interface MyFunction {
        void apply();
    }
    

5. @NonNull, @Nullable

  • 用途:虽然这些不是Java标准库中的注解,但广泛用于检查null值。@NonNull表示参数、返回值或字段不应为null;@Nullable则相反。

  • 示例(使用JSR 305或类似库):

    public void myMethod(@NonNull String param) {
        // 参数param应非空
    }
    

6. @Test

  • 用途:用于标识一个方法是测试方法,通常与JUnit等单元测试框架一起使用。

  • 示例(JUnit框架):

    @Test
    public void testMyMethod() {
        // 测试代码
    }
    

7. @Autowired, @Resource, @Inject

  • 用途:这些注解用于依赖注入,分别来自Spring框架、Java EE和JSR-330规范。它们帮助容器自动装配bean之间的依赖关系。

  • 示例(Spring框架):

    @Autowired
    private MyService myService;
    

8. @Repeatable

  • 用途:Java 8引入,用于定义注解可以重复应用在同一个声明上。需要与一个容器注解配合使用。

    @Repeatable(MyAnnotations.class)
    @interface MyAnnotation {
        String value();
    }
    
    @interface MyAnnotations {
        MyAnnotation[] value();
    }
    
    @MyAnnotation("first")
    @MyAnnotation("second")
    public class MyClass {
        // ...
    }
    

这只是Java注解中最常用的一小部分,实际上还有许多其他标准注解以及大量框架自定义的注解,根据具体应用场景选择合适的注解进行使用。

了解更多知识请戳下:

@Author:懒羊羊

标签:Java,void,用途,public,编译器,注解,Annotation
From: https://blog.csdn.net/kangqiao0422/article/details/139794699

相关文章

  • 基于JavaSpringBoot+Vue+uniapp技术的微信小程序鲜花商城购物系统设计与实现
    博主介绍:硕士研究生,专注于Java技术领域开发与管理,以及毕业项目实战✌    从事基于javaBS架构、CS架构、c/c++编程工作近16年,拥有近12年的管理工作经验,拥有较丰富的技术架构思想、较扎实的技术功底和资深的项目管理经验。    先后担任过技术总监、部门经理、......
  • [Java并发]Thread
    Java开启线程的四种方式实现runnable接口这个方法有一个很大的缺点就是重写的run方法是没有返回值的,如果想要返回值,需要使用下面的方法publicclassRunnableImplimplementsRunnable{/**创建步骤如下:*1,定义Runnable接口的实现类,并且实现run方法,这个方法......
  • JAVA类与对象的基础概念(JAVA基础)
    类的定义1.定义:类可以看做是一个模版,或者图纸,系统根据类的定义来造出对象2.属性:用于定义该类或该类对象包含的数据或者说静态特征3.初始化∶定义成员变量时可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化4.方法:用于定义该类或该类实例的行为特征和功能实现......
  • [Java并发]ConcurrentHashMap
    ConcurrentHashMapHashMap和ConcurrentHashMap的区别主要区别就是hashmap线程不安全,ConcurrentHashMap线程安全HashMap线程不安全,有以下两个问题put覆盖问题比如有两个线程A和B,首先A希望插入一个key-value对到HashMap中,首先计算记录所要落到的桶的索引坐标,然后获取到该桶......
  • [Java基础]String
    String常量池/运行时常量池java类编译之后生成的.class文件包含三部分信息,类的基本信息,常量池,方法的定义通过javap-vxxxx.class命令可以看到Constantpool:#1=Methodref#2.#3//java/lang/Object."<init>":()V#2=Class#4......
  • Java Stream 8 API
    动态多字段排序动态多字段排序假设我们有一个Person类,希望能够按照age和name进行动态排序。我们使用上述代码生成一个组合比较器来完成多字段排序。1.定义Person类java复制代码importjava.util.HashMap;importjava.util.Map;publicclassPerson{privateM......
  • vscode开发纯java项目兼容eclipse
    最近想使用vscode作为开发工具逐步替代eclipse,但是不影响eclipse作为项目管理的配置。以下是踩坑过程:1、项目之间的依赖。如主projectA依赖projectB,projectB并不是已jar包的形式,而是项目的形式在eclipse中的,eclipse有个很方便的功能是直接把项目添加进依赖中,vscode貌似找不到直接......
  • Java基础面试题下
    #Java基础面试题(下)>lecture:波哥#一、String相关面试题##1.为什么String在java中是不可变的?-如果不是不可变的:这种情况根本不可能,因为在字符串池的情况下,一个字符串对象/文字,例如“Test”已被许多参考变量引用,因此如果其中任何一个更改了值,其他参数将自动受到影......
  • 1.4Java 基本数据类型
    变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。因此,通过定义不同类型的变量,可以在内存中储存整数、小数或者字符。Java的两大数据类型:内置数据类型引用......
  • 【JavaScript脚本宇宙】编写可靠代码:探索最佳JavaScript类型检查解决方案
    掌握类型安全:选择适合您的JavaScript类型检查工具前言JavaScript作为一种动态类型语言,在大型项目的开发中常常会遇到类型错误和难以调试的问题。为了解决这些问题,出现了各种类型的JavaScript类型检查工具。这些工具能够帮助开发人员在代码编写过程中及时发现潜在的类型错......