上一篇 <<<Class文件分析一個(gè)類為啥最多支持65535個(gè)接口
下一篇 >>>為什么重寫equals還要重寫hashcode方法
內(nèi)置注解
(1)@SuppressWarnings 再程序前面加上可以在javac編譯中去除警告--階段是SOURCE
(2)@Deprecated 帶有標(biāo)記的包,方法鸳慈,字段說(shuō)明其過(guò)時(shí)----階段是SOURCE
(3)@Overricle 打上這個(gè)標(biāo)記說(shuō)明該方法是將父類的方法重寫--階段是SOURCE
自定義注解
使用@interface定義注解嗤谚,包含了其他元注解(元注解的作用就是負(fù)責(zé)注解其他注解)藐吮。
@Target
@Target說(shuō)明了Annotation所修飾的對(duì)象范圍:Annotation可被用于 packages块请、types(類挎袜、接口只厘、枚舉乘综、Annotation類型)符隙、類型成員(方法趴捅、構(gòu)造方法垫毙、成員變量、枚舉值)拱绑、方法參數(shù)和本地變量(如循環(huán)變量综芥、catch參數(shù))。在Annotation類型的聲明中使用了target可更加明晰其修飾的目標(biāo)猎拨。
.CONSTRUCTOR:用于描述構(gòu)造器
.FIELD:用于描述域
.LOCAL_VARIABLE:用于描述局部變量
.METHOD:用于描述方法
.PACKAGE:用于描述包
.PARAMETER:用于描述參數(shù)
.TYPE:用于描述類膀藐、接口(包括注解類型) 或enum聲明
@Retention
表示需要在什么級(jí)別保存該注釋信息,用于描述注解的生命周期(即:被描述的注解在什么范圍內(nèi)有效,一般都是RunTime)红省,在反射的時(shí)候使用
@Documented
@Inherited
//注解定義
@Target(value = { ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
public @interface SetTable {
String value() default “";
}
// 1.反射class獲得類的實(shí)例
Class<?> classForName = Class.forName("com.entity.Sudent");
// 2.通過(guò)getAnnotation方法额各,獲得注解及使用注解里的具體方法信息等
SetTable setTable = classForName.getAnnotation(SetTable.class);
相關(guān)文章鏈接:
<<<Java基礎(chǔ)-反射機(jī)制
<<<Java基礎(chǔ)-字節(jié)碼技術(shù)
<<<Java基礎(chǔ)-創(chuàng)建對(duì)象的方式匯總
<<<Java基礎(chǔ)-對(duì)象布局
<<<Java基礎(chǔ)-對(duì)象的引用類型
<<<Class文件分析一個(gè)類為啥最多支持65535個(gè)接口
<<<為什么重寫equals還要重寫hashcode方法
<<<十大經(jīng)典排序算法匯總-動(dòng)畫演示
<<<JDK8十大新特性