2019-03-15 14:18:07 1894瀏覽
今天扣丁學(xué)堂Java培訓(xùn)老師給大家分享一篇關(guān)于Java注解與反射原理說明的詳細(xì)介紹,首先注解若想發(fā)揮更大作用,還需借助反射機(jī)制之力。通過反射,可以取得一個(gè)方法上聲明的注解的全部內(nèi)容。
public class AccessibleObject implements AnnotatedElement { ... //取得全部Annotation public Annotation[] getAnnotations() { return getDeclaredAnnotations(); } ... } public final class Method extends Executable { ... public Annotation[] getDeclaredAnnotations() { //針對Method類,需要調(diào)用父類的getDeclaredAnnotations方法 return super.getDeclaredAnnotations(); } ... } //Method的父類Executable的getDeclaredAnnotations實(shí)現(xiàn)全部注解信息的獲取 public abstract class Executable extends AccessibleObject implements Member, GenericDeclaration { ... public Annotation[] getDeclaredAnnotations() { return AnnotationParser.toArray(declaredAnnotations()); } ... }
public final class Method extends Executable { ... ////取得指定Annotation public <T extends Annotation> T getAnnotation(Class<T> annotationClass) { return super.getAnnotation(annotationClass); } ... } public abstract class Executable extends AccessibleObject implements Member, GenericDeclaration { ... public <T extends Annotation> T getAnnotation(Class<T> annotationClass) { Objects.requireNonNull(annotationClass); //獲得指定注解類的信息 return annotationClass.cast(declaredAnnotations().get(annotationClass)); } ... }
想要了解更多關(guān)于Java開發(fā)方面內(nèi)容的小伙伴,請關(guān)注扣丁學(xué)堂Java培訓(xùn)官網(wǎng)、微信等平臺,扣丁學(xué)堂IT職業(yè)在線學(xué)習(xí)教育平有專業(yè)的Java講師為您指導(dǎo),此外扣丁學(xué)堂老師精心推出的Java視頻教程定能讓你快速掌握J(rèn)ava從入門到精通開發(fā)實(shí)戰(zhàn)技能??鄱W(xué)堂Java技術(shù)交流群:670348138。
【關(guān)注微信公眾號獲取更多學(xué)習(xí)資料】
查看更多關(guān)于“Java開發(fā)資訊”的相關(guān)文章>>