2009-11-24 77 views
1

我有多个枚举正在实施,即摘要枚举一个注释属性类型

public interface MinorCodes { 
    public abstract int code(); 
    public abstract String description(); 
} 

public enum IdentityMinorCodes implements MinorCodes { 
    IDENTITY_UPLOAD_PICTURE_CODE(1, "Error while trying to upload a picture."), 
} 

现在我想具备这些具体的枚举值之一的值类型的自定义注释,即

接口
public @interface PokenService { 
    MinorCodes[] exceptions(); 
} 

但我当然不能在这里返回接口。

有没有人知道任何解决方案或解决方法?

在此先感谢。

回答

2

你可以创建一个包装所有MinorCodes枚举值额外的枚举:

public enum MinorCodesWrapper { 
    IDENTITY_UPLOAD_PICTURE_CODE(IdentityMinorCodes.IDENTITY_UPLOAD_PICTURE_CODE), 
    SOME_CODE(AnotherMinorCodes.SOME_CODE); 

    private final MinorCodes _wrapped; 

    MinorCodesWrapper(MinorCodes wrapped) { 
     _wrapped = wrapped; 
    } 

    public MinorCodes getWrapped() { 
     return _wrapped; 
    } 
} 

public @interface PokenService { 
    MinorCodesWrapper[] exceptions(); 
} 

不漂亮,但工程;)