注解(Java用于工具处理的标注)

一. 使用注解

1. 含义

        注解是放在类,方法,字段,参数前的一种特殊“注释”,是一种用作标注的“元数据”。

2. 三类注解

        1)由编译器使用的注解,不会编译进.class文件,编译后扔掉;如:@Override、@SuppressWarnings。

        2)由工具处理.class文件使用的注解,编译进.class文件,加载结束后不会加载进JVM,被底层库使用,无需处理。

        3)程序运行期读取的注解,加载后一直存在于JVM中,最常用的注解。

3. 注意

        1)注解配置参数必须都是常量,所以定义注解时就确定了所有参数的值,正常每个参数都有默认值,如果不设置就使用默认值。

        2)如果参数名称是value且只有一个参数,那么可以省略参数名称。

二. 定义注解

1. 含义

        用@interface来定义注解,注解的参数类似无参方法,用default设定一个默认值(最好是!),最常用的参数应命名为value(有且只有它时可以省略参数名称)。

2. 元注解(修饰其他注解)

        1)@Target(最常用)

                定义源码被应用于哪些位置。

                ElementType.TYPE:类或接口或枚举

                ElementType.FIELD:成员变量字段

                ElementType.METHOD:方法

                ElementType.CONSTRUCTOR:构造方法

                ElementType.PARAMETER:方法参数

                ElementType.LOCAL_VARIABLE:能修饰局部变量

                ElementType.ANNOTATION_TYPE:能修饰注解

                ElementType.PACKAGE:能修饰包

        2)@Retention(默认CLASS期间)

                定义了注解的生命周期

                RetentionPolicy.SOURCE:编译期间

                RetentionPolicy.CLASS:class文件

                RetentionPolicy.RUNTIME:程序运行时(自定义常用!)

        3)@Documented

                是否将注解信息添加到javadoc文档中。

        4)@Repeatable(注解可重复,不常用)

                修饰的注解,可在同位置使用多个同样的注解。

        5)@Inherited(继承)

                修饰的注解,仅针对@Target(ElementType.TYPE)类型的类有效,子类可继承父类的注解。

3. 如何定义注解

        1)使用@interface定义注解类。

        2)添加参数、默认值;把最常用的参数定义为value(),所有参数都尽量设置默认值。

        3)添加元注解;必须设置@Targer和@Retention,@Retention一般设置为RUNTIME。

        

三. 处理注解

1. 注意

        1)所有注解都是class,都继承自java.lang.annotation.Annotation。

        2)读取注解,要使用反射,反射API提供的Annotation实例封装了注解的所有信息。

2. 获取注解

        1)判断某个注解是否存在于Class、Field、Method或Constructor。

                Class.isAnnotationPresent(注解.Class)

                Field.isAnnotationPresent(注解.Class)

                Method.isAnnotationPresent(注解.Class)

                Constructor.isAnnotationPresent(注解.Class)

        2)用反射API获取注解

                Class.getAnnotation(注解.Class)

                Field.getAnnotation(注解.Class)

                Method.getAnnotation(注解.Class)

                Constructor.getAnnotation(注解.Class)

                

3. 使用注解

        定义了注解,本身对逻辑程序没有任何影响,编写代码来使用注解,JVM不会自动给注解添加任何处理逻辑。

  • 37
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Java中的Param注解通常用于方法参数,在方法参数前使用 @Param 注解可以指定参数的名称,比如: ```java public void updateUser(@Param("id") int id, @Param("name") String name); ``` 在这个例子中,@Param("id")指定了第一个参数的名称为"id",@Param("name")指定了第二个参数的名称为"name"。 使用 @Param 注解的好处是可以提高代码的可读性,明确方法参数的含义,也方便参数的传递。在使用MyBatis等ORM框架进行数据库操作时,@Param 注解也常常用于指定SQL语句中的参数名称,如: ```java @Select("select * from user where id = #{id} and name = #{name}") public User getUserByIdAndName(@Param("id") int id, @Param("name") String name); ``` 在这个例子中,@Param 注解用于指定参数名称,使得MyBatis可以正确地将参数传递到SQL语句中。 ### 回答2: Java中的param注解是一种用于对方法的参数进行标注注解。param注解主要用于提供方法参数的说明和描述,方便开发人员理解和使用。 param注解通常可以和其他注解一起使用,以提供更详细的参数说明。比如,可以使用@param注解配合@Nullable注解来表示参数可以为null,或者使用@param注解配合@NonNull注解来表示参数不允许为null。 使用param注解可以提高代码的可读性和可维护性。在阅读和理解代码时,通过param注解可以清楚地知道每个参数的具体作用和要求,避免了在阅读代码时需要去查阅文档的麻烦。 同时,param注解也可以在开发工具中提供参数的自动补全和提示功能,提升开发效率和准确性。开发人员在使用带有param注解的方法时,可以根据注解的提示信息来正确地填写参数,避免了参数错误导致的bug。 总之,java的param注解是一种用于对方法的参数进行标注注解,通过注解可以提供参数的说明和描述,方便开发人员理解和使用。同时,还可以提高代码的可读性、可维护性和开发效率。 ### 回答3: Java中的@param注解用于在方法或构造函数的注释中描述方法的参数。@param注解的作用是提供对参数的额外说明和解释。 @param注解通常紧跟在方法或构造函数的注释后面,用于说明方法或构造函数的参数列表。它可以用于描述参数的名称、类型、取值范围、含义、使用方法等。 @param注解可以提高代码的可读性和可维护性。通过使用@param注解,开发人员不仅可以明确指定参数的含义和用法,还可以提供一些额外的信息,帮助其他开发人员更好地理解和使用这些参数。 @param注解还可以作为代码文档的一部分,通过自动生成工具生成API文档时,@param注解的内容会被包含在文档中,使得使用者能够更好地理解参数的含义和使用方法。 总的来说,@param注解是一种用于描述方法参数的注解,通过提供对参数的额外说明和解释,它可以提高代码的可读性和可维护性,并在生成API文档时帮助使用者更好地理解代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值