java註解編譯
自定義註解,可以應用到反射中,比如自己寫個小框架。
如實現實體類某些屬性不自動賦值,或者驗證某個對象屬性完整性等
本人自己用過的驗證屬性值完整性:
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface IgnoreProperty {
}
然後實體類中:
public class TarResearch implements Serializable{
@IgnoreProperty
private static final long serialVersionUID = 1L;
@IgnoreProperty
private Integer researchId;
@IgnoreProperty
private TarUser userId;
private String version;
private String grade;
....
}
然後action類中
// 驗證數據完整性
Class<TarResearch > userClass = TarResearch .class;
Field[] field = userClass.getDeclaredFields();
for (int i = 0; i < field.length; i++) {
if (field[i].getAnnotation(IgnoreProperty.class) != null) {
continue;
}
String fie = field[i].getName().substring(0, 1).toUpperCase()
+ field[i].getName().substring(1);
Method method = userClass.getMethod("get" + fie);
Object obj = method.invoke(u);
if (obj == null) {
sendResponseMsg(response, "數據錯誤");
return null;
}
}
⑵ java編譯時,注釋是否編譯
不編譯!編譯只編譯JAVA中的保留字和你定義的變數
⑶ Java編譯時註解和運行時註解有什麼區別
區別如下:
1)編譯時註解,註解內容只存在源文件,在編譯期間將被丟棄,不能通過JVM獲取註解信息;
2)運行時註解,編譯時被存儲在.class位元組碼文件,可以通過JVM運行時獲取註解信息(且只限於被RUNTIME註解的註解)。
⑷ Java 註解的JAVA 註解
Annotation(註解)是JDK1.5及以後版本引入的。它可以用於創建文檔,跟蹤代碼中的依賴性,甚至執行基本編譯時檢查。註解是以『@註解名』在代碼中存在的,根據註解參數的個數,我們可以將註解分為:標記註解、單值註解、完整註解三類。它們都不會直接影響到程序的語義,只是作為註解(標識)存在,我們可以通過反射機制編程實現對這些元數據(用來描述數據的數據)的訪問。另外,你可以在編譯時選擇代碼里的註解是否只存在於源代碼級,或者它也能在class文件、或者運行時中出現(SOURCE/CLASS/RUNTIME)。