『壹』 java自定義註解:能否通過反射找到哪一個類加了該註解(在一個項目范圍內)
當然可以;
首先,你得獲得自定義類所對應的Class對象,
其次,通過Class對象獲得回所對應的所有方法,建立一個答Method[] list 。
然後,遍歷該Method[] list 數組,取得每一個Method對象,調用該對象的isAnnotationPresent()方法。判斷該方法是否被你所標記的Annotation修飾。
最後,如果該方法返回true,自然就是那你要找的方法,否則,false。
祝你好運!!最好就是自己找到API文檔,進行查閱相關類,以及相關方法的說明,自己編寫代碼,這樣你會學會很多的,祝你成功!!!!
『貳』 java反射無法動態獲取註解
@Action
public void test() throws NoSuchMethodException, SecurityException{
StackTraceElement[] stack = new Throwable().getStackTrace();
Method method = this.getClass().getMethod(stack[0].getMethodName());
for(Annotation an : method.getAnnotations()){
System.out.println(an);
}
}
也可以寫個公共方法來獲取,stack[0]這里專要屬改成stack[1]
『叄』 java獲取當前類上的註解內容
@Retention(RetentionPolicy.RUNTIME) // 註解會在來class位元組碼文件中存在,自在運行時可以通過反射獲取到
@Target({ElementType.FIELD,ElementType.METHOD})//定義註解的作用目標**作用范圍欄位、枚舉的常量/方法
@Documented//說明該註解將被包含在javadoc中
public @interface FieldMeta {
/**
* 是否為序列號
* @return
*/
boolean id() default false;
/**
* 欄位名稱
* @return
*/
String name() default "";
/**
* 是否可編輯
* @return
*/
boolean editable() default true;
/**
『肆』 Java 註解的讀取註解信息的方法
屬於重點,在系統中用到註解許可權時非常有用,可以精確控制許可權的粒度
注意:要想使用反射去讀取註解,必須將Retention的值選為Runtime Java代碼importjava.lang.annotation.Annotation;importjava.lang.reflect.Method;//讀取註解信息{publicstaticvoidmain(String[]args)throwsException{//測試AnnotationTest類,得到此類的類對象Classc=Class.forName(com.iwtxokhtd.annotation.AnnotationTest);//獲取該類所有聲明的方法Method[]methods=c.getDeclaredMethods();//聲明註解集合Annotation[]annotations;//遍歷所有的方法得到各方法上面的註解信息for(Methodmethod:methods){//獲取每個方法上面所聲明的所有註解信息annotations=method.getDeclaredAnnotations();//再遍歷所有的註解,列印其基本信息System.out.println(method.getName());for(Annotationan:annotations){System.out.println(方法名為:+method.getName()+其上面的註解為:+an.annotationType().getSimpleName());Method[]meths=an.annotationType().getDeclaredMethods();//遍歷每個註解的所有變數for(Methodmeth:meths){System.out.println(註解的變數名為:+meth.getName());}}}}}
『伍』 如何用java 程序獲取方法上的注釋
你說的應該是註解吧,注釋本身就是一種說明性的作用,JAVA文件在被編譯到版CLASS文件後是權不存在注釋的,註解不一樣,可以通過反射獲取,但是JAVA文件被編譯後,註解也不一定存在,這個取決於你所定義註解的生命周期。
『陸』 java如何獲取類上的註解
如何獲取類的註解和註解的內容
java反射
ClasssomeClass=Some.getClass();
註解somtAnnotation=someClass.getAnnotation(註解.class)
屬性類型屬性值=someAnnotation.屬性();
要一一內遍歷么?容
這個要根據需求來頂,誰用誰遍歷,