java 帮我看下这几个注解是啥意思 谢谢了
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 帮我看下这几个注解是啥意思 谢谢了相关的知识,希望对你有一定的参考价值。
package com.mydeertrip.dc2.interceptor;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE, ElementType.METHOD)
public @interface NoAuth
// Nothing to do
你好,提问者:
看到你的问题我特意查了下:
一 :Inherited 注解(这段可能有问题...)
这是一个稍微复杂的注解类型. 它指明被注解的类会自动继承. 更具体地说,如果定义注解时使用了 @Inherited
标记,然后用定义的注解来标注另一个父类, 父类又有一个子类(subclass),则父类的所有属性将被继承到它的子类中. 在示例7中,你会看到使用
@Inherited 标签的好处.
你不需要在实现类中定义接口方法. 因为使用 @Inherited标记,这些都自动继承了.
二:Retention注解
Retention(保留)注解说明,这种类型的注解会被保留到那个阶段. 有三个值:
1.RetentionPolicy.SOURCE ——
这种类型的Annotations只在源代码级别保留,编译时就会被忽略
2.RetentionPolicy.CLASS ——
这种类型的Annotations编译时被保留,在class文件中存在,但JVM将会忽略
3.RetentionPolicy.RUNTIME ——
这种类型的Annotations将被JVM保留,所以他们能在运行时被JVM或其他使用反射机制的代码所读取和使用.
三:@Target:
@Target说明了Annotation所修饰的对象范围:Annotation可被用于 packages、types(类、接口、枚举、Annotation类型)、类型成员(方法、构造方法、成员变量、枚举值)、方法参数和本地变量(如循环变量、catch参数)。在Annotation类型的声明中使用了target可更加明晰其修饰的目标。
作用:用于描述注解的使用范围(即:被描述的注解可以用在什么地方)
取值(ElementType)有:
CONSTRUCTOR:用于描述构造器
2.FIELD:用于描述域
3.LOCAL_VARIABLE:用于描述局部变量
4.METHOD:用于描述方法
5.PACKAGE:用于描述包
6.PARAMETER:用于描述参数
7.TYPE:用于描述类、接口(包括注解类型) 或enum声明
四:@interface
@interface是用来自定义JAVA Annotation的语法,普通的开发人员可能很少用到它,但是它的功能很强大
一般的应用程序开发人员可能从不需要定义一个注释类型,但定义我们自己的注释类型并不复杂。注释类型的定义跟定义一个接口相似,我们需要在 interface这个关键字前面加上一个@符号,即@interface。注释中的每一个方法定义了这个注释类型的一个元素,注释中方法的声明中一定不能包含参数,也不能抛出异 常;方法的返回值被限制为简单类型、String、Class、emnus、注释,和这些类型的数组。方法可以有一个缺省值。
参考技术A Inherited:指示注释类型被自动继承Retention:注释类型的注释要保留多久
Target:指示注释类型所适用的程序元素的种类
这些都是可以在API里查到的 你要学会自己看API文档啊 搞IT编程不学会看文档怎么行本回答被提问者采纳 参考技术B Java注解是附加在代码中的一些元信息,用于一些工具在编译、运行时进行解析和使用,起到说明、配置的功能。
注解不会也不能影响代码的实际逻辑,仅仅起到辅助性的作用。包含在 java.lang.annotation 包中。
元注解是指注解的注解。包括 @Retention @Target @Document @Inherited四种。
@Inherited:说明子类可以继承父类中的该注解
@Retention: 定义注解的保留策略,注释类型的注释要保留多久
@Retention(RetentionPolicy.RUNTIME) // 注解会在class字节码文件中存在,在运行时可以通过反射获取到
@Target:定义注解的作用目标,所适用的程序元素的种类
@Target(ElementType.TYPE) // 接口、类、枚举、注解
@Target(ElementType.METHOD) // 方法
使用@interface自定义注解时,自动继承了java.lang.annotation.Annotation接口,由编译程序自动完成其他细节。在定义注解时,不能继承其他的注解或接口。
这几个泛型符号都是啥意思?
泛型大家都用过,这几个符号代表啥意思是否也有些疑惑呢?以下整理几乎齐全了。
Java泛型中的标记符含义:
E - Element (在集合中使用,因为集合中存放的是元素)
T - Type(Java 类)
K - Key(键)
V - Value(值)
N - Number(数值类型)
? - 表示不确定的java类型
S、U、V - 2nd、3rd、4th types
Object跟这些标记符代表的java类型有啥区别呢?
Object是所有类的根类,任何类的对象都可以设置给该Object引用变量,使用的时候可能需要类型强制转换,但是用使用了泛型T、E等这些标识符后,在实际用之前类型就已经确定了,不需要再进行类型强制转换。
以上是关于java 帮我看下这几个注解是啥意思 谢谢了的主要内容,如果未能解决你的问题,请参考以下文章
JAVA程序的几个小问题,有空的大神帮我看下谢谢啦~也可以让我给你发程序帮忙调一下万分感谢3QQQQQQ