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进行投诉反馈,一经查实,立即删除!