【发布时间】:2018-12-29 11:41:04
【问题描述】:
我有如下界面:
public interface Moon {
// Enums can not extend any class in Java,
// thus I am implementing an interface
double getMass();
double getDiameter();
}
由我的枚举实现(我省略了构造函数和方法实现)
public enum Saturn implements Moon {
ATLAS(30.2, 6.6),
PAN(28.2, 4.95);
private double Diameter;
private double Mass;
// constructor and methods implementation
}
以及其他行星的类似枚举:
public enum Mars implements Moon {
PHOBOS(22.2, 1.08),
DEIMOS(12.6, 2);
private double Diameter;
private double Mass;
// constructor and methods implementation
}
问题
有两个字符串:
String planetName = "Mars";
String moonName = "PHOBOS";
我怎样才能以聪明的方式获得特定的枚举?
在只有一个枚举类的情况下,它是valueOf 方法的简单使用,但我如何检查所有实现特定接口的枚举?
Moon something = <??planetName??>.valueOf(moonName);
【问题讨论】:
-
太棒了!正是我的用例!