Annotation注解

Annotation是從JDK5.0開始引入的新技術(shù)

Annotation的作用:

—不是程序本身迂烁,可以對程序作出解釋(這點和注解沒什么區(qū)別)
—可以被其他程序讀妊Α(注解信息處理流程,這是注解和注釋的重大區(qū)別)

Annotation的格式:

@"注釋名"上煤,還可以添加一些參數(shù)休玩,如@SupperssWarning(value="uncheck")

Annotation在哪里使用:

可以附加在package,class劫狠,method拴疤,field等上面,可以通過反射機制實現(xiàn)對這些元數(shù)據(jù)的訪問

內(nèi)置注解

@Override
只能修飾方法独泞,表示打算重寫超類中的方法
@Deprecated
可用于修飾方法呐矾、屬性、類懦砂,表示已廢棄蜒犯,即不建議程序員使用,在JDK源碼中常見
@SuppressWarnings
抑制編譯時的警告信息

自定義注解

元注解

Paste_Image.png
Paste_Image.png

寫一個ORM的demo

MyField .java

@Target(value = {ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface MyField {
    String columnName();
    String type();
    int length();
}```
Table .java

@Target(value = {ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface Table {
String value();
}```
Student .java

@Table("tb_student")
public class Student {
    @MyField(columnName = "id",type = "int",length = 10)
    private int id;
    @MyField(columnName = "name",type = "varchar",length = 10)
    private String name;
    @MyField(columnName = "age",type = "int",length = 3)
    private int age;

    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    public void setId(int id) {
        this.id = id;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setAge(int age) {
        this.age = age;
    }
}```
OrmTest .java

public class OrmTest {
public static void main(String[] args) {
try {
Class clazz=Class.forName("com.ztc.annotation.Student");
//獲得所有注解
Annotation[] annotations = clazz.getAnnotations();
for(Annotation a:annotations){
System.out.println(a);
}
//獲得指定的注解
Table tb= (Table) clazz.getAnnotation(Table.class);
System.out.println(tb.value());

        Field f=clazz.getDeclaredField("name");
        MyField mf=f.getAnnotation(MyField.class);
        System.out.println(mf.columnName()+"--"+mf.type()+"--"+mf.length());

        //根據(jù)表名荞膘,字段等信息愧薛,拼出DDL語句,使用JDBC執(zhí)行SQL在數(shù)據(jù)庫中生成對應的表
    } catch (Exception e) {
        e.printStackTrace();
    }
}

}```

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末衫画,一起剝皮案震驚了整個濱河市毫炉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌削罩,老刑警劉巖瞄勾,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異弥激,居然都是意外死亡进陡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門微服,熙熙樓的掌柜王于貴愁眉苦臉地迎上來趾疚,“玉大人,你說我怎么就攤上這事以蕴〔诼螅” “怎么了?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵丛肮,是天一觀的道長赡磅。 經(jīng)常有香客問我,道長宝与,這世上最難降的妖魔是什么焚廊? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任冶匹,我火速辦了婚禮,結(jié)果婚禮上咆瘟,老公的妹妹穿的比我還像新娘嚼隘。我一直安慰自己,他們只是感情好袒餐,可當我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布飞蛹。 她就那樣靜靜地躺著,像睡著了一般匿乃。 火紅的嫁衣襯著肌膚如雪桩皿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天幢炸,我揣著相機與錄音泄隔,去河邊找鬼。 笑死宛徊,一個胖子當著我的面吹牛佛嬉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播闸天,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼暖呕,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了苞氮?” 一聲冷哼從身側(cè)響起湾揽,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎笼吟,沒想到半個月后库物,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡贷帮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年戚揭,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片撵枢。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡民晒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出锄禽,到底是詐尸還是另有隱情潜必,我是刑警寧澤,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布沟绪,位于F島的核電站刮便,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏绽慈。R本人自食惡果不足惜恨旱,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望坝疼。 院中可真熱鬧搜贤,春花似錦、人聲如沸钝凶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽耕陷。三九已至掂名,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間哟沫,已是汗流浹背饺蔑。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留嗜诀,地道東北人猾警。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像隆敢,于是被迫代替她去往敵國和親发皿。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 本文章涉及代碼已放到github上annotation-study 1.Annotation為何而來 What:A...
    zlcook閱讀 29,158評論 15 116
  • 什么是注解(Annotation):Annotation(注解)就是Java提供了一種元程序中的元素關聯(lián)任何信息和...
    九尾喵的薛定諤閱讀 3,166評論 0 2
  • 看了郭神公眾號推薦的注解知識,想到自己這方面有欠缺,大家一起來學習.本文主要是對自己學到的知識進行總結(jié),和大家分享...
    藍冰海域閱讀 689評論 0 4
  • 從JDK1.5開始拂蝎,Java引入了一種新的注釋機制-Annotation穴墅,中文名稱一般叫注解,它一般作為說明信息温自,...
    黑心石閱讀 14,449評論 1 3
  • 慢慢的 慢慢的 你就會發(fā)現(xiàn) 原來在黯然或斑斕的夜里 你越來越不能與他友好相處 孤獨 惆悵 悔恨 憂愁都與黑...
    易安YIAN閱讀 269評論 0 3