java – Enum:我刚做了一些不需要的事吗?
发布时间:2020-05-28 06:28:45 所属栏目:Java 来源:互联网
导读:我有一个枚举类,它有几个常量,我想添加一些静态值FOCUSED,表示哪个枚举值有焦点… 我找到了一个方法: package messagesystem;/** * * @author Frank */public enum MessageType { ALL, GENERAL, SEND, RECEIVE, LOG, EXCEPTION,
|
我有一个枚举类,它有几个常量,我想添加一些静态值FOCUSED,表示哪个枚举值有焦点… 我找到了一个方法: package messagesystem;
/**
*
* @author Frank
*/
public enum MessageType {
ALL,GENERAL,SEND,RECEIVE,LOG,EXCEPTION,DEBUG,PM;
public final static MessageType FOCUSED = GENERAL;
private final String value;
MessageType() {
String firstLetter = name().substring(0,1);
String otherLetters = name().substring(1,name().length());
this.value = firstLetter.toUpperCase() + otherLetters.toLowerCase();
}
@Override
public String toString() {
return value;
}
}
但是,现在我想知道:我是否只是搞乱了枚举类?因为我不希望在指定消息类型时可以选择FOCUSED,但是处理MessageType枚举的类应该能够确定FOCUSED值…这样我就不需要在每个类中对其进行硬化. 任何想法都表示赞赏. 编辑:虽然行为正常. this.focused = MessageType.FOCUSED.toString();
System.out.println(focused);
输出为“常规”. 解决方法FOCUSED只是GENERAL的别名.它不会出现在枚举的值()中,如果某些客户端代码使用FOCUSED,它实际上将使用GENERAL,因为两个变量都引用相同的枚举值.所以不,我不认为你搞砸了.为了减少混淆,也许你应该使focused()成为一个静态方法,它返回GENERAL.如果您确定焦点类型是另一个类型,这也可以避免重新编译客户端代码的需要. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- 使用Java从磁盘备份和恢复sqlite到内存
- C++/java 继承类的多态详解及实例代码
- DataOutputSteam给我一个’java.io.IOException:
- java – NoSuchFieldError:INCLUDE_ALL(Web服务
- JavaWeb项目中dll文件动态加载方法解析(详细步骤
- java – 在ConcurrentHashMap中可以有超过32个锁
- 如何将矢量分组到矢量列表?
- java – 不支持PagedResultsControl的LDAP服务器
- Java计算机硬盘大小转换(B,KB,MB,GB,TB,PB之间的
- java – 如何禁用Eclipse(3.3.2)警告:访问封闭构
热点阅读
