3

私は列挙型を持っています:

public enum Scope {
    USER, GLOBAL;

    public static final Scope[] TRANSIENT = {};
    public static final Scope[] USER_OVER_GLOBAL = {GLOBAL, USER};
    public static final Scope[] GLOBAL_OVER_USER = {USER, GLOBAL};
}

および注釈:

public @interface Config {
    public Scope[] load() default Scope.GLOBAL_OVER_USER; // Can't use this defval

    public Scope[] save() default Scope.USER;
}

注釈のプロパティのデフォルト値として静的配列を使用できないのはなぜですか? 私の NetBeans 7.3 Beta は、必要であるScopeが見つかったと教えてくれましたScope[]- これは正しくないことがわかります。NB または Java 7 関連の混乱はありますか?

4

1 に答える 1

4

問題は、Scope[] GLOBAL_OVER_USERすべてが一定ではないことです。(はい、配列自体は定数ですが、たとえばGLOBAL_OVER_USER[0] = GLOBAL;.

回避策は、注釈宣言で配列を直接開始することです。

public Scope[] load() default {USER, GLOBAL};
于 2012-11-13T11:55:29.327 に答える