如果我有一个enum成员的类,我想能够表示这个成员没有定义的情况,哪个更好? a)使用可为空的types声明该成员在类中是可空的。 例如: public SomeEnum? myEnum; b)向枚举添加一个默认的“未知”值。 例如: public enum SomeEnum { Unknown, SomeValueA, SomeValueB, SomeValueC, } 我无论如何也看不出任何重大的利弊。 但也许一个比另一个更可取?
我有这个枚举代码: enum Duration { Day, Week, Month }; 我可以为这个枚举添加一个扩展方法吗?
我查看了EnumSet.allOf ,看起来效率很高,特别是对于小于64个值的枚举。 基本上所有的集合共享所有可能枚举值的单个数组,唯一的另一条信息是一个位掩码,在allOf情况下设置为一举。 另一方面,Enum.values()似乎有点黑魔法。 此外,它返回一个数组,而不是一个集合,所以在许多情况下,它必须用Arrays.asList()来装饰,以便在任何需要收集的地方使用。 那么, EnumSet.allOf应该比EnumSet.allOf更可取? 更具体地说,应该使用哪种forms的迭代器: for ( final MyEnum val: MyEnum.values( ) ); 要么 for ( final MyEnum val: EnumSet.allOf( MyEnum.class ) );
Java中的静态和非静态枚举有什么区别? 两种用法都是一样的。 这是正确的吗? 所有静态的都会在启动时加载到内存中,而非静态的会按需加载 ? 如果是,那么哪种方法更好? 保持一些数据总是在内存中或使用服务器资源来加载它们每次? public class Test { public enum Enum1 { A, B } public static enum Enum2 { C, D } public static void main(String[] args) { Enum1 a = Enum1.A; Enum1 b = Enum1.B; Enum2 c = Enum2.C; Enum2 d = Enum2.D; } }
以前,我把我的LegNo枚举简单地定义为: NO_LEG, LEG_ONE, LEG_TWO 并通过调用return LegNo.values()[i]; ,我能够得到与每个枚举相关联的值。 但是现在我已经决定了我希望LegNo枚举NO_LEG是int -1而不是0,所以我决定使用一个私有的构造函数来初始化和设置它的int值 NO_LEG(-1), LEG_ONE(1), LEG_TWO(2); private LegNo(final int leg) { legNo = leg; } 现在唯一的事情是,因为我这样做的values()方法不会为NO_LEG枚举工作。 我如何获得与int关联的枚举? 除了使用case switch语句或if-elseif-elseif之外,是否有任何有效的方法来完成此操作 我可以看到很多关于从枚举中获取int值的问题,但是我正好相反。
是否有可能通过使用Lambdaexpression式迭代Enumeration ? 以下代码片段的Lambda表示是什么: Enumeration<NetworkInterface> nets = NetworkInterface.getNetworkInterfaces(); while (nets.hasMoreElements()) { NetworkInterface networkInterface = nets.nextElement(); } 我没有发现任何stream。
有没有办法find一个枚举的最大和最小定义值在c + +?
我正在为包含它自己的枚举的类编写javadoc。 有没有办法为单个枚举生成javadoc? 例如,现在我有这样的东西: /** * This documents "HairColor" */ private static enum HairColor { BLACK, BLONDE, BROWN, OTHER, RED }; 但是,这仅仅logging了所有的枚举: 有没有办法单独logging每个HairColor值? 没有将枚举移入它自己的类或将其从枚举中更改? 在此先感谢您的帮助。
Rails 4 Active Record Enums很好,但是用i18n翻译的正确模式是什么?
在Java 5及以上版本中,您有foreach循环,它在实现Iterable任何事情上神奇地工作: for (Object o : list) { doStuff(o); } 但是, Enumerable仍然不能实现Iterable ,这意味着要迭代Enumeration ,必须执行以下操作: for(; e.hasMoreElements() 😉 { doStuff(e.nextElement()); } 有谁知道是否有一个原因为什么Enumeration仍然不能实现Iterable ? 编辑:作为一个澄清,我不是在谈论一个枚举的语言概念,我正在谈论一个Java API中称为“ 枚举 ”的特定于Java的类。