Java注解的簡單入門小案例
快速了解注解
我發(fā)現(xiàn)現(xiàn)在很多資料講的都太過于詳細(xì)了,但是我們可能僅僅只是想要了解以下,注解的簡單用法,并不需要了解那么多,而且雖然資料很多,可是對于像我這樣的對Java了解并不多的人,看完哪些長篇大論,其實啥也沒記住。這樣我覺得效果,就不是很好,大部分人可能只是遇到了,想要知道它是干什么的?怎么使用?哪里管那么多,但是如果對于知識感興趣還是要努力學(xué)習(xí),看那些詳細(xì)的資料就是最好的了。
Talk is cheap, show me the code.
定義注解
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyLoveForYou {
String love();
}
定義類
public class Love {
@MyLoveForYou(love="吾愛亦吾心")
private String love;
public String getLove() {
return love;
}
public void setLove(String love) {
this.love = love;
}
//重寫 toString() 方法。
@Override
public String toString() {
return "Love [love=" + love + "]";
}
}
處理注解類
import java.lang.reflect.Field;
public class ProcessAnnotation {
private static Love love;
//創(chuàng)建 love 實例
public static Love getLove(){
Class<?> clazz = Love.class;
try {
Field field = clazz.getDeclaredField("love");
field.setAccessible(true);
MyLoveForYou myLoveForYou = field.getAnnotation(MyLoveForYou.class);
String fieldLove = myLoveForYou.love();
try {
love = (Love)clazz.newInstance();
} catch (InstantiationException | IllegalAccessException e) {
e.printStackTrace();
}
love.setLove(fieldLove);
} catch (NoSuchFieldException | SecurityException e) {
e.printStackTrace();
}
return love;
}
}
測試
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
public class Test {
public static void main(String[] args) throws
ClassNotFoundException, NoSuchMethodException,
SecurityException, InstantiationException,
IllegalAccessException, IllegalArgumentException, InvocationTargetException {
//異常有點多,但是不用擔(dān)心,其實只有三行代碼。
Love love = ProcessAnnotation.getLove();
System.out.println(love.getLove());
System.out.println(love.toString());
}
}
測試結(jié)果

簡單說明以下
這里就使用了一個非常簡單的注解類,使用了兩個最基礎(chǔ)的元注解(元注解的意思就是: 修飾的是類的屬性 保留到運行期)。
然后就可以使用注解了,簡單的使用其實很簡單,就像下面這樣就像了。
@MyLoveForYou(love="吾愛亦吾心")
這里強調(diào)以下,單純的使用注解是沒有任何用的,注解需要借助專門的工具處理,這里定義一個簡單的處理注解的類(這個類可能需要一點反射的知識,但是也不要緊,如果你只想知道注解的作用,也可以不用管它,記住用法就行了):ProcessAnnotation
用法:這個類就是干一件事,給 love 賦值為 吾愛亦吾心。
最后就是測試了,這里重寫了toString() 方法,看起來更加直觀一點。
最后
我覺得這里應(yīng)該講的很簡單的,畢竟我了解的也不多,我也是才看了一點關(guān)于注解的知識,但是我覺得這里舉的這個簡單的小例子應(yīng)該足夠理解什么是注解了。真正的注解還是很復(fù)雜的,但是又不用我們來寫,只要使用就行了,所以這應(yīng)該就夠了,但是對于想要深入學(xué)習(xí)的人,這是遠(yuǎn)遠(yuǎn)不夠的。加油!
到此這篇關(guān)于Java注解的簡單入門小案例的文章就介紹到這了,更多相關(guān)Java注解簡單入門內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring配置多個數(shù)據(jù)源并實現(xiàn)數(shù)據(jù)源的動態(tài)切換功能
這篇文章主要介紹了Spring配置多個數(shù)據(jù)源并實現(xiàn)數(shù)據(jù)源的動態(tài)切換功能,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-01-01
java中jdbcTemplate的queryForList(坑)
本文主要介紹了java中jdbcTemplate的queryForList,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09
SpringBoot 自定義+動態(tài)切換數(shù)據(jù)源教程
這篇文章主要介紹了SpringBoot 自定義+動態(tài)切換數(shù)據(jù)源教程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12
Windows10 Java環(huán)境變量配置過程圖解
這篇文章主要介紹了Windows10 Java環(huán)境變量配置過程圖解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-07-07

