I have the following interface:
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);