2013-05-06 59 views
0

是否有任何Java註釋設定字段值,它的名稱,例如:的Java註釋某個字段設置爲它的名字

public interface Protocol { 
    @Whatever String START; // Here @Whatever annotation would set START to "START" in any static string field. 
} 
+1

似乎是一個很大的開銷,以避免打字:'= 「START」' – cjstehno 2013-05-06 14:03:24

+2

遺憾的是沒有方式來修改使用註釋編譯類的方式。您可以基於註釋不同地生成基於註釋或*句柄*的*附加*類,但不能修改類本身。 [Project Lombok](http://projectlombok.org/)似乎是反說法,但它們幾乎破解了編譯器(它們不能也不能單獨使用公共API)。 – 2013-05-06 14:06:01

回答

4

沒有,但是你可以使用枚舉類。

public enum Protocol { 
    START, 
    END 
} 

然後當你會寫:

System.out.println(Protocol.START); 

您將獲得 「START」

+0

請提供代碼示例 – Alp 2013-05-06 14:20:49

+1

是的。我更新了答案。 – Ahiel 2013-05-06 14:58:24