Tag: 枚举

界面内部的枚举实现 – Java

我有一个关于在界面中放置Java枚举的问题。 为了更清楚,请参阅以下代码: public interface Thing{ public enum Number{ one(1), two(2), three(3); private int value; private Number(int value) { this.value = value; } public int getValue(){ return value; } } public Number getNumber(); public void method2(); … } 我知道接口由具有空体的方法组成。 但是,我在这里使用的枚举需要一个构造函数和一个方法来获取一个关联的值。 在此示例中,建议的接口不仅包含具有空体的方法。 是否允许此实施? 我不确定是否应该将enum类放在接口或实现此接口的类中。 如果我将枚举放在实现此接口的类中,那么public Number getNumber()方法需要返回枚举类型,这将迫使我在接口中导入枚举。

在Java中获取地图(HashMap)的枚举(用于键)?

据我所知,似乎没有直接获取HashMap的键的Enumeration的直接方法。 我只能得到一个keySet() 。 从那个Set ,我可以得到一个Iterator但是Iterator似乎与Enumeration不同。 从HashMap的键直接获取Enumeration的最佳和最HashMap什么? 背景:我正在实现自己的ResourceBundle (=> getKeys()方法),我必须提供/实现一个返回所有键的枚举的方法。 但我的实现是基于HashMap所以我需要以某种方式弄清楚如何最好地转换这两个“Iterator / Enumerator”技术。

MyBatis枚举用法

我知道之前已经问过这个问题,但是根据我到目前为止找到的信息,我无法实现解决方案。 所以也许有人可以向我解释。 我有一张桌子“状态”。 它有两列:id和name。 id是PK。 我想使用枚举,而不是使用POJO状态。 我创建了如下枚举: public enum Status { NEW(1), READY(2), CLOSED(3); private int id; public void setId(int id) { this.id = id; } public int getId() { return this.id; } Status(int id) { this.id = id; } } 这是我的映射器 SELECT ls.id, ls.name FROM status AS ls WHERE ls.name = #{name} 但由于某种原因,当我尝试检索枚举时,某些东西会中断,但不会抛出任何exception。

使用数据库中的值填充枚举

我有一个映射String-> Integer的表。 我想用数据库中的值填充枚举,而不是静态创建枚举。 这可能吗 ? 所以,而不是静态地揭示这个: public enum Size { SMALL(0), MEDIUM(1), LARGE(2), SUPERSIZE(3) }; 我想动态创建这个枚举,因为数字{0,1,2,3}基本上是随机的(因为它们是由数据库的AUTOINCREMENT列自动生成的)。

包含2000 + 1枚举常量的枚举类是否达到了限制?

以下代码在main (map==null)出现NullPointerException失败。 只有在我定义2001或更多Enum常量时才会出现问题,2000工作正常。 为什么不执行静态代码块? 我们是否达到编译器的任何静默限制(没有警告,没有错误)或JVM? 编译后的类文件超过172KB, import java.util.HashMap; public enum EnumTest { E(1),E(2),…,E(2001); private static HashMap map = new HashMap(); static { for ( EnumTest f : EnumTest.values() ) { map.put( (int) f.id, f ); } } short id; private EnumTest(int id) { this.id = (short) id; }; public short getId() { return id; } […]

如何将带有重写的toString()的枚举的字符串结果转换回枚举?

给出以下java枚举: public enum AgeRange { A18TO23 { public String toString() { return “18 – 23”; } }, A24TO29 { public String toString() { return “24 – 29”; } }, A30TO35 { public String toString() { return “30 – 35”; } }, } 有没有办法将字符串值“18 – 23”转换为相应的枚举值,即AgeRange.A18TO23? 谢谢!

Java中的自定义枚举

我需要实现自定义Enum。 它应该是一些实现Enum方法的类,比如valueOf,values和ordinal而不直接扩展java.lang.Enum。 我一直在考虑以这样的方式创建它,而不是String应该是一些generics类型T: public class CustomEnum { private static int size; private static final InnerEnum enumValues; public CustomEnum(){ } public String valueOf(String innerEnum, String name){ if(name.equals(innerEnum)){ return innerEnum; } return null; } public InnerEnum values(){ return enumValues; } public int ordinal(){} public static class InnerEnum{ public static String[] data; public static int number; } } […]

单独的Enum文件不接受变量

我创建了一个enum.java文件,在创建变量时出错。 但在我的其他.java文件中,没有出现这些错误。 在枚举Foo中,唯一没有导致错误的是,如果Foo构造函数没有参数,并且枚举中没有其他变量。 错误的范围从String是无效修饰符和要删除的布尔值。 package com.foo.bar public enum Foo { String foo; boolean isBarable; Foo(String foo, boolean isBarable) { this.foo = foo; this.isBarable = isBarable; } }

如何通过名称字符串获取枚举值

我想通过名称字符串获取枚举值, 这个enum代码:包实践; enum Mobile { Samsung(400), Nokia(250), Motorola(325); int price; Mobile(int p) { price = p; } int showPrice() { return price; } } 我可以获取类名和名称字符串 Class enumClass = Class.forName(“practice.Mobile”); String name = “Samsung”; 如何才能获得三星值400仅使用enumClass和名称? 非常感谢

如何使用枚举中的每种环境类型的值列表来表示键?

我有两个环境PROD和STAGING 。 在prod环境中,我们有三个数据中心ABC , DEF和PQR并且暂存有一个数据中心CORP 。 每个数据中心都有很少的机器,我为它们定义了常量,如下所示: // NOTE: I can have more machines in each dc in future public static final ImmutableList ABC_SERVERS = ImmutableList.of(“tcp://machineA:8081”, “tcp://machineA:8082”); public static final ImmutableList DEF_SERVERS = ImmutableList.of(“tcp://machineB:8081”, “tcp://machineB:8082”); public static final ImmutableList PQR_SERVERS = ImmutableList.of(“tcp://machineC:8081”, “tcp://machineC:8082”); public static final ImmutableList STAGING_SERVERS = ImmutableList.of(“tcp://machineJ:8087″,”tcp://machineJ:8088”); 现在我在同一个类中定义了另一个常量,它按DC分组到每个环境类型的机器列表。 public static final ImmutableMap<Datacenter, […]