enum Enum1{ A, B, C }
enum Enum2{ D, E, F }
private static Enum getEnum(Class<Enum> E, String name){
for(Enum e: E.getEnumConstants())
if(e.name().equals(name)){
return e;
}
return null;
}
我想用:getenum(Enum1,“a”)
调用它。但它不喜欢:
java: cannot find symbol
symbol: variable Enum1
location: class Main
当您可以使用Java自己的实现时,为什么要实现您自己的呢?
YourEnum yourEnum = Enum.valueOf(YourEnum.class, value);
http://docs.oracle.com/javase/7/docs/api/java/lang/enum.html#valueof(java.lang.class,%20java.lang.string)
然后您的方法变成:
private static <E extends Enum<E>> E getEnum(Class<E> enumClass, String name){
try {
return Enum.valueOf(enumClass, name);
} catch(IllegalArgumentException e) {
return null;
}
}
getEnum(Enum1.class, "A")
问题内容: 我想声明一个枚举Direction,它具有一个返回相反方向的方法(以下语法不正确,即,不能实例化枚举,但它说明了我的观点)。这在Java中可行吗? 这是代码: 问题答案: 对于那些按标题吸引的人:是的,您可以在枚举中定义自己的方法。如果您想知道如何调用这种非静态方法,则可以使用与其他任何非静态方法相同的方法- 在定义或继承该方法的类型实例上调用它。如果是枚举,则此类实例仅为s。 因此,
问题内容: 例如,我该怎么做: 结果示例: 问题答案: 迅捷4.2+ 从Swift 4.2(使用Xcode 10)开始,只需添加协议一致性即可从中受益。要添加此协议一致性,您只需要在某处写: 如果枚举是您自己的,则可以直接在声明中指定一致性: 然后,以下代码将打印所有可能的值: 与早期Swift版本(3.x和4.x)的兼容性 如果您需要支持Swift 3.x或4.0,则可以通过添加以下代码来模仿S
问题内容: 这件事让我困扰了一阵子。我之前曾问过一些问题,但措辞可能很拙劣,而且例子太抽象了。所以目前尚不清楚我实际上在问什么。我会再尝试。并且请不要下结论。我希望这个问题根本不容易回答! 为什么我不能在Java中使用带有泛型类型参数的枚举? 问题不在于语法上为什么不可能做到这一点。我知道这只是不受支持。问题是:为什么JSR人员会“忘记”或“忽略”这个非常有用的功能?我无法想象与编译器相关的原因,
我的模式如下 我正在尝试编写一个方法来检查代码并返回相应的枚举。 event.getStatusCode的有效值是:A,T,U。现在我需要检查这些代码并根据代码返回枚举。我尝试了上面的方法,但它给我代码=["A"]的错误。下面是错误状态。 我该怎么解决这个问题?我是java新手。非常感谢您的帮助,谢谢
我写了以下方法 我如何将不同的枚举类型传递给第二个参数?我知道我不能创建枚举的实例,但初始化枚举意味着我将传递一个值,而不是整个初始化的枚举,如下所示...其他枚举也将传递给相同的方法以实现组合细节