首页 / JAVA / 在Java中使用枚举或静态字符串变量
在Java中使用枚举或静态字符串变量
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在Java中使用枚举或静态字符串变量,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1967字,纯文字阅读大概需要3分钟。
内容图文
![在Java中使用枚举或静态字符串变量](/upload/InfoBanner/zyjiaocheng/654/4e2828a49efe4153bc806ff8c4c09d98.jpg)
遇到了一个问题,那就是哪个更好用. Java5枚举或静态字符串.
我总是以字符串形式获取数据.
例如
私有静态最终字符串LOAD_DRUGS =“装载毒品”;
或使用Java5枚举
public enum LoadType
{
LOAD_DRUGS("load drugs");
}
在我的代码中,我总是收到“加载毒品”类的字符串.我使用if else语句查看基于它的下一步操作.但是我倾向于使用java5枚举并使用switch大小写,但是我总是必须基于我得到的字符串值来获取枚举.
那么,这两种方式的优缺点是什么?
谢谢!!
解决方法:
这个答案可能是矫kill过正.也许有一个徽章.无论如何,在您有很多枚举值并且必须将String作为另一系统向您发送信息的方式的情况下,它可能会很有用.那正是我所拥有的(大约50左右),因此我使用了此构造,以便可以只生成一次由db报告的字符串和我内部使用的枚举的映射,然后在以后不考虑它- toString和fromString完成所有工作:
package com.stevej;
import com.google.common.collect.HashBiMap;
public enum TestEnum {
ALPHA("Alpha"), BETA("Beta"), GAMMA("Gamma");
private static HashBiMap<TestEnum, String> stringMapping = HashBiMap
.create(TestEnum.values().length);
private String stringValue = null;
TestEnum(String stringValue) {
this.stringValue = stringValue;
}
String getStringValue() {
return this.stringValue;
}
@Override
public String toString() {
return stringMapping.get(this);
}
public static TestEnum fromString(String string) {
return stringMapping.inverse().get(string);
}
static {
for (TestEnum e : TestEnum.values()) {
stringMapping.put(e, e.getStringValue());
}
}
}
这是一个快速测试,显示来回切换数据:
package com.stevej;
public class StackOverflowMain {
public static void main(String[] args) {
System.out.println(">> " + TestEnum.ALPHA);
System.out.println(">> " + TestEnum.BETA);
System.out.println(">> " + TestEnum.GAMMA);
TestEnum a = TestEnum.fromString("Alpha");
TestEnum b = TestEnum.fromString("Beta");
TestEnum c = TestEnum.fromString("Gamma");
System.out.println(">> " + a);
System.out.println(">> " + b);
System.out.println(">> " + c);
}
}
输出显示混合大小写值的使用,而不是大写,表明正在使用我的字符串:
>> Α
>>贝塔
>>伽玛
>> Α
>>贝塔
>>伽玛
请注意,我正在使用Google Guava库,因此可以利用BiMap.
内容总结
以上是互联网集市为您收集整理的在Java中使用枚举或静态字符串变量全部内容,希望文章能够帮你解决在Java中使用枚举或静态字符串变量所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。