
Java枚举定义
我以为我很了解Java泛型,但是随后在java.lang.Enum中遇到了以下内容:class Enum<E extends Enum<E>>有人可以解释如何解释此类型参数吗?奖励点,用于提供可以使用类似类型参数的其他示例。回答:这意味着枚举的类型参数必须从本身具有相同类型参数的枚举派生。怎么会这样 通过使类型参数成为新类型...
2024-01-10
Java枚举继承
为什么Java中的枚举不能从其他枚举继承?为什么以这种方式实施?回答:例子因为将元素添加到枚举将有效地创建超类,而不是子类。考虑: enum First {One, Two} enum Second extends First {Three, Four} First a = Second.Four; // clearly illegal Second a = First.One; // should work这与常规类的工作方式相反。我想可以...
2024-01-10
Java:枚举与整数
在Java中使用标志时,我看到了两种主要方法。使用int值和一组if-else语句。另一个是使用枚举和case-switch语句。我想知道在使用枚举和整数进行标记之间在内存使用和速度方面是否存在差异?回答:双方ints并enums可以同时使用开关或IF-THEN-ELSE和内存使用情况也是最小的两个,而速度是类似的-有关于你...
2024-01-10
Java枚举与静态常量
我正在查看公司其他部门维护的一些Java代码,顺便说一下,这是一些前C和C ++开发人员所维护的。普遍存在的一件事是使用静态整数常量,例如class Engine { private static int ENGINE_IDLE = 0; private static int ENGINE_COLLECTING = 1; ...}除了缺少“最终”限定符外,这种代码也让我有些不安。我本来希望看到...
2024-01-10
Java中的枚举。优点?
使Java中的枚举类似于类而不是像C / C ++那样仅是常量集合有哪些优点?回答:您可以获得有效值的免费编译时检查。使用public static int OPTION_ONE = 0;public static int OPTION_TWO = 1;不保证void selectOption(int option) {...}只会接受0或1作为参数值。使用枚举是可以保证的。此外,由于您可以使用代码完成功能来...
2024-01-10
如何在java中打印所有枚举值?
enum generalInformation { NAME { @Override public String toString() { return "Name"; } }, EDUCATION { @Override public String toString() { return "Education"; } }, EMAIL { ...
2024-01-10
将Int转换为Java枚举
给定以下枚举,将Int强制转换为Java中的枚举的正确方法是什么?public enum MyEnum{ EnumValue1, EnumValue2}MyEnum enumValue = (MyEnum) x; //Doesn't work???回答:尝试MyEnum.values()[x]在x必须为0or的地方1,即该枚举的有效序数。请注意,在Java中,枚举实际上是类(因此,枚举值是对象),因此您不能将an int甚至In...
2024-01-10
Java:使用反射实例化枚举
假设您有一个文本文件,例如:my_setting = ONsome_method = METHOD_Averbosity = DEBUG...您希望相应地更新相应的对象:Setting my_setting = ON;Method some_method = METHOD_A;Verbosity verbosity = DEBUG;...凡是不同种类的枚举。我想有一个通用的方法来实例化枚举值。也就是说,在运行时使用反射,而无需事先知道对象的枚...
2024-01-10
Java如何用泛型实现枚举?
我有一个像这样的通用接口:interface A<T> { T getValue();}此接口具有有限的实例,因此最好将它们实现为枚举值。问题是那些实例具有不同类型的值,因此我尝试了以下方法,但无法编译:public enum B implements A { A1<String> { @Override public String getValue() { return "value"; } }, ...
2024-01-10
Java 编码约定-命名枚举
是否有使用Java命名枚举的约定?我的偏好是枚举是一种类型。例如,你有一个枚举Fruit{Apple,Orange,Banana,Pear, ... }NetworkConnectionType{LAN,Data_3g,Data_4g, ... }我反对为其命名:FruitEnumNetworkConnectionTypeEnum我知道很容易挑选出哪些文件是枚举,但随后你还将拥有:NetworkConnectionClassFruitClass另外,是否有一个...
2024-01-10
Java中具有int值的枚举
什么是C#的Java等价物:enum Foo{ Bar = 0, Baz = 1, Fii = 10,}回答:如果需要属性,则enum需要这样定义:public enum Foo { BAR (0), BAZ (1), FII (10); private final int index; Foo(int index) { this.index = index; } public int index() { return index...
2024-01-10
在Java中使用嵌套的枚举类型
我想到的是一个涉及嵌套枚举的数据结构,因此我可以执行以下操作:Drink.COFFEE.getGroupName();Drink.COFFEE.COLUMBIAN.getLabel();如果有方法声明:someMethod(Drink type)someOtherMethod(DrinkTypeInterface type)然后我可以说(适当):someMethod(Drink.COFFEE)someOtherMethod(Drink.COFFEE.COLUMBIAN)这是我想出的:public enum ...
2024-01-10
如何将Java枚举转换为C#?
我有一些Java代码,我想将其翻译为C#。srcParams是一个哈希表。这是Java代码:for (Enumeration keys = srcParams.keys(); keys.hasMoreElements()) { key = keys.nextElement(); destParams.Add(key, srcParams[key]);}这是我在C#中的尝试IEnumerator key = srcParams.Keys.GetEnumerator();while (key.Mov...
2024-01-10
从JSON反序列化Java枚举
我们使用Jackson1.9.1对与Java对象之间的JSON请求响应字符串进行序列化和反序列化。原始Java类型,集合类型和自定义对象都可以(反)序列化而不会出现问题。但是,尝试将JSON字符串反序列化为Java枚举时遇到问题。JSON字符串的序列化方式如下:"wt":{"wt":100.5,"unit":{"LBS":3}}wt的Java类型如下所示:public cla...
2024-01-10
在Java枚举中使用==可以吗?
是否可以==在Java枚举中使用,还是需要使用.equals()?在我的测试中,它==始终有效,但是我不确定是否可以保证。特别是,.clone()在枚举上没有方法,因此我不知道是否有可能获得一个枚举,该枚举.equals()将返回不同于的值==。例如,这样可以吗:public int round(RoundingMode roundingMode) { if(roundingMode == Roundin...
2024-01-10
一个Java文件中包含多个枚举类
我有3个带有常量的String数组。例如: String[] digit = {"one", "two", "three"}; String[] teen= {"ten", "twenty", "thirty"}; String[] anchors = {"hundred", "thousand", "million"};我想单独转让这些来枚举的,所以我将有3枚举类:digit,teen并anchors用getValue方法来实现。但是我不想将它们放在单独的文件中,因为我只有少量数据和相同...
2024-01-10
将JSON反序列化为Java枚举
我在Android上的Java中具有以下枚举,并且我希望能够将传入的JSON字符串/对象中的整数反序列化为此Enum类型。我一直在Jackson和GSON上受到欢迎,但在我正在使用的JSON.org包上却什么也没有。有没有简单的方法可以做到这一点,或者我需要更改JSON解码器?谢谢。public enum ValueEnum { ONE(1), TWO(2), THREE...
2024-01-10
Java中“枚举”的用途是什么?
所以,我看着这个“枚举”类型,并且它种好像一个华而不实的 数组 / ArrayList/ List给我。到底有什么用?回答:枚举是一种固定数量的常量,至少可以用于两件事public enum Month { JANUARY, FEBRUARY, ...}这比创建一堆整数常量要好得多。public enum Singleton { INSTANCE // init};您可以使用枚举来做一...
2024-01-10
如何获取Java中的所有枚举值?
我遇到了这个问题,我不知道enum需要迭代其实际值的实际类型。if (value instanceof Enum){ Enum enumValue = (Enum)value;}任何想法如何从enumValue中提取其可能的值?回答:Object[] possibleValues = enumValue.getDeclaringClass().getEnumConstants();...
2024-01-10
Java枚举数组的默认值或初始值
假设我有一个枚举public enum Day { MONDAY, TUESDAY, ..., SUNDAY },然后实例化一个天数组Day[]days = Day[3];。如何将一天(例如MONDAY)设置为所有“天”的默认值days?如果如上所述进行设置,则所有元素day均为空。我希望通过枚举表现得更像ints和Strings,它们分别初始化为0和“”。回答:正如其他人所说,枚举...
2024-01-10
Java泛型和枚举,模板参数丢失
我的结构相当复杂,无法正常工作。这是我所做的:public interface ResultServiceHolder { <M, ID extends Serializable, BO extends BusinessObject<M, ID>> ResultService<M, ID, BO> getService();}public enum ResultTypes implements ResultServiceHolder { RESULT_TYPE_ONE { @Ove...
2024-01-10
如何在Java枚举中定义静态常量?
有什么方法可以在Java枚举声明中定义静态最终变量(有效常量)?我想要在一个地方定义BAR(1 … n)值的字符串文字值:@RequiredArgsConstructorpublic enum MyEnum { BAR1(BAR_VALUE), FOO("Foo"), BAR2(BAR_VALUE), ..., BARn(BAR_VALUE); private static final String BAR_VALUE = "Bar"; @Getter pri...
2024-01-10
如何从Java中的索引获取枚举值?
我在Java中有一个枚举:public enum Months{ JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC}我想按索引访问枚举值,例如Months(1) = JAN;Months(2) = FEB;...我该怎么办?回答:试试这个Months.values()[index]...
2024-01-10
我可以在Java中设置枚举起始值吗?
我使用枚举来使一些常量:enum ids {OPEN, CLOSE};OPEN值为零,但我希望它为100。可能吗?回答:Java枚举不同于C或C ++枚举,它们实际上只是整数的标签。Java枚举的实现更像类-甚至可以具有多个属性。public enum Ids { OPEN(100), CLOSE(200); private final int id; Ids(int id) { this.id = id; } public int getValue() { re...
2024-01-10
Java枚举-在定义字段之前无法引用它
我有一个像下面这样的枚举,但是蚀说每个相对的对的第一个定义中都有错误。public enum Baz{ yin(yang), //Cannot reference a field before it is defined yang(yin), good(evil), //Cannot reference a field before it is defined evil(good); public final Baz opposite; Baz(Baz opposite){ th...
2024-01-10
