java 注解
2024-01-07 19:18:24
内置注解
常用注解
主要有9个
java.lang.annotation 包
@Retention
只能用于其他注解,注解的保留策略
@Documented
只能用于其他注解,用来标记接口
@Target
只能用于注解,声明注解可以用于的声明类型,如果不声明则此注解可以用于所有的类型。
应用范围通过此枚举类进行限定
public enum ElementType {
/** Class, interface (including annotation type), or enum declaration */
TYPE,
/** Field declaration (includes enum constants) */
FIELD,
/** Method declaration */
METHOD,
/** Formal parameter declaration */
PARAMETER,
/** Constructor declaration */
CONSTRUCTOR,
/** Local variable declaration */
LOCAL_VARIABLE,
/** Annotation type declaration */
ANNOTATION_TYPE,
/** Package declaration */
PACKAGE,
/**
* Type parameter declaration
*
* @since 1.8
*/
TYPE_PARAMETER,
/**
* Use of a type
*
* @since 1.8
*/
TYPE_USE
}
代码示例
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface Single {
int value();
String name() default "必须要有默认值";
}
class Test{
@Single(100)
public int index;
}
@Inherited
被用于注解,标注后此注解可以被子类继承,在查找注解时,如果子类没有会在父类中查找注解
@Repeatable
java8新特性重复注解
-
必须要有声明类型
-
必须要有value的值
-
返回类型必须是声明的注解的类型的数组
代码示例:
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Repeatable(SingleChild.class)
public @interface Single {
int value();
}
//必须要有声明类型
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@interface SingleChild {
//必须要有value
Single[] value();
}
class Test{
@SingleChild({@Single(100),@Single(200)})
public int index;
}
java.lang 包
@Override
只能用于方法,保证父类中的方法被重写而不是被重载
@Deprecated
声明过时
@FunctionalInterface
java8提供,声明函数式接口
@SafeVarargs
声明不安全代码检查,例如可变长度参数的方法或者声明为static final 的方法
代码示例
@SafeVarargs
public static void ww(String ...name){}
@SafeVarargs
public final void ee(String ...name){
}
@SuppressWarnings
抑制一个或者多个编译器可能发生的警告
专用注解
暂无
文章来源:https://blog.csdn.net/i_am_bad_man/article/details/135442236
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!