Tag: 枚举

对枚举进行子类化

是否有一种简单的方法来子类化Java enum ? 我问这个是因为我喜欢其中10个实现相同的接口,但它们对于某些方法也有相同的实现,所以我想通过将所有相同的实现放在扩展Enum中间对象中来重用代码,它也是我需要的所有其他人的超类。 也许它不像我想的那么简单? 预先感谢

Java – 包含数组字段的枚举

我想将每个名称的列表名称和单个昵称存储为Java中的Enum。 昵称的数量不会有所不同。 目的是能够从昵称中获取全名。 目前我已经实现了这样: public enum Names { ELIZABETH(new String[] {“Liz”,”Bet”}), … ; private String[] nicknames; private Names(String[] nicknames) { this.nicknames = nicknames } public Names getNameFromNickname(String nickname) { //Obvious how this works } } 我不喜欢不得不重复new String[] {…} ,所以我想知道是否有人可以建议一种替代的,更简洁的实现方法? 干杯, 皮特

使用Hibernate保存枚举id而不是序数值

我有一个enum ,如下所示: public enum SocialType { Facebook(1L), LinkedIn(2L), Twitter(3L), Skype(14L), Blog(16L), Google(21L); private Long id; SocialType(Long id) { this.id = id; } public Long getId() { return id; } public static SocialType parse(Long id) { SocialType socialType = null; for (SocialType item : SocialType.values()) { if (item.getId() == id) { socialType = item; break; } […]

枚举中的可配置值

我经常在我的代码中使用这个设计来维护可配置的值。 考虑以下代码: public enum Options { REGEX_STRING(“Some Regex”), REGEX_PATTERN(Pattern.compile(REGEX_STRING.getString()), false), THREAD_COUNT(2), OPTIONS_PATH(“options.config”, false), DEBUG(true), ALWAYS_SAVE_OPTIONS(true), THREAD_WAIT_MILLIS(1000); Object value; boolean saveValue = true; private Options(Object value) { this.value = value; } private Options(Object value, boolean saveValue) { this.value = value; this.saveValue = saveValue; } public void setValue(Object value) { this.value = value; } public Object getValue() […]

使用enum参数自动推断返回类型

如果我将Enum作为参数提供给Java中的方法,是否可以自动推断返回类型? 我希望能够通过使getValue通用并使用Enum中的信息来支持这些调用 String myval = obj.getValue(MyEnum.Field1) int myval2 = obj.getValue(MyEnum.Field2) 当前解决方案 我目前的解决方案是这样的: String val = typeRow.getColumnValueGen(TYPEGODKENDCRM.COLUMN_TYPEGODKENDNR, String.class) 它用于访问表的ORM表示中的列。 我知道这个字段是一个字符串,我想避免在每次调用时告诉它。

用于传递和调用方法引用的Lambda语法

传递和调用方法引用的Lambda语法是什么? 场景:根据枚举中的值构建对象(单选按钮)。 我传递了枚举值的集合。 我希望另一个方法(构造函数)在每个枚举值上调用一个方法。 该方法调用确定每个单选按钮的显示标签。 但是该方法的名称因每个特定的Enum类而异。 一些枚举有一个getTitle方法,另一个可能有一个名为getDescription或getCaption的方法,而另一个可能有getLocalizedVariationOfTitle 。 如何让每个调用程序员传递他们的特定方法来调用? Collection enumValues = Arrays.asList( SomeEnum.values() ); x = new EnumRadioButtons( enumValues , ??methodReferenceToGetTitle?? ); 传递和调用语法??methodReferenceToGetTitle?? 我不知道。 构造函数看起来像这样: public EnumRadioButtons ( Collection options , ??methodReferenceToGetTitle?? ) { … for ( Object option : options ) { this.setTitleOfEachOption( option , ??methodReferenceToGetTitle?? ); } } 取消引用方法引用时,代码有效地变为: this.setTitleOfEachOption( option , […]

Java枚举发出错误?

当我尝试给我的枚举值时,它给了我这个错误: 枚举状态中的构造函数状态不能应用于给定类型; STATUS_OPEN(0), 为什么会发生这种情况,我该如何解决? 到目前为止,这是我的代码: public enum Status { STATUS_OPEN(0), STATUS_STARTED(1), STATUS_INPROGRESS(2), STATUS_ONHOLD(3), STATUS_COMPLETED(4), STATUS_CLOSED(5); } 我正在使用记事本和JDK通过命令提示符 – 我现在不想使用netbeans或eclipse。 我关注这个网站: 链接 我已经google了,我无法真正找到为什么会出现这个问题或者如何通过搜索错误来修复它。

是否可以根据输入文件创建Java枚举?

我正在使用Java 6。 假设我有一个文件availableFruits.txt APPLE ORANGE BANANA 假设我想要一个包含availableFruits.txt列出的值的枚举FruitType ,我能够这样做吗?

零实例枚举vs私有构造函数用于防止实例化

一些实用程序类(想想java.lang.Math )只声明一个私有构造函数,以防止实例化该类。 有没有什么特别的原因可以解释为什么这些类没有实现0-instance enum? 在我看来,enums是一种比构造函数上的访问修饰符更直接的控制实例化的方法。 它还可以防止类本身创建实例,这些实例既可以防止程序员在脚中射击,也可以向外传递任何实例的保证。 约书亚布洛赫主张使用枚举作为单身人士。 0-instance实用程序类不应该具有相同的优点吗? 我的问题: 0实例枚举与私有构造函数的优缺点是什么? (我个人认为使用枚举没有任何缺点,尽管私有构造函数似乎是更普遍的方法。) (我知道java.lang.Math早于enum 。我在这里说1.5+代码。)

如何在java中使用enumMap

你如何在java中使用enumMap? 我想使用enumMap来获取从0到n的常量命名值,其中n是size。 但我不明白oracle网站上的描述> EnumMap 。 我试着在这里使用一个 package myPackage; import java.util.EnumMap; public class Main{ public static enum Value{ VALUE_ONE, VALUE_TWO, SIZE } public static EnumMap x; public static void main(String[] args){ x.put(Value.VALUE_ONE, 0); x.put(Value.VALUE_TWO, 1); x.put(Value.SIZE, 2); int[] myArray = new int[SIZE]; } } 这不起作用。 你怎么用enumMap? 没有x.put(Value.VALUE_ONE, 0);也有办法吗x.put(Value.VALUE_ONE, 0); 对于枚举中的每个元素?