public interface Proposal {
public static final enum STATUS {
NEW ,
START ,
CONTINUE ,
SENTTOCLIENT
};
}Java不允许枚举在接口内为final,但默认情况下,接口内的每个数据成员都是public static final。有人能澄清这一点吗?
发布于 2012-03-27 22:38:01
枚举不能是最终的,因为编译器将为程序员显式定义实现的每个枚举条目生成子类。
此外,没有实例具有自己的类体的枚举由JLS section 8.9隐式地定义为最终的。
发布于 2012-03-27 22:30:36
Java不允许创建扩展enum类型的类。因此,枚举本身总是最终的,所以使用final关键字是多余的。
当然,在某种意义上,枚举并不是最终的,因为您可以为enum描述符内的每个字段定义一个匿名子类。但是使用final关键字来防止这种类型的描述没有多大意义,因为人们必须在同一个.java文件中创建这些子类,并且任何有权这样做的人都可以很容易地删除final关键字。没有人在其他包中扩展您的枚举的风险。
发布于 2012-03-27 22:33:18
两件事:
java.lang.Enum
https://stackoverflow.com/questions/9891613
复制相似问题