这是我当前的枚举类:
public enum BuildingType {
MINER("Miner", "A basic slave." (*, Miner (separate class)*)), FARM("Farm", "Old Macdonald's Crib."), BAKERY("Bakery", "Best Cookies in Town!"), FACTORY("Factory", "Highest Quality Memes in town!"), QUARRY("Quarry", "Let's get drilling!");
private String name;
private String description;
//private Class clazz;
BuildingType(String name, String description (* Possible to put Class clazz reference here? *)) {
this.name = name;
this.description = description;
//this.clazz = clazz
}
public String getName() {
return name;
}
public String getDescription() {
return description;
}
public Class getReferencedClass() {
//Return referenced "clazz" above
}
}
正如评论和(* *)中所说,是否可以在枚举中引用静态类,以便我可以通过引用构建类型来更改该类中的静态值?
例如
BuildingType.MINER.getReferencedClass.setCookiesPerSecond(4);
谢谢大家,
雅科:)
最佳答案
您可以使用反射来做到这一点,但是最好有一个该类的实例,该实例实现了所有其他实现都实现的接口(interface),即使该接口(interface)只有一个实例,例如
enum StaticData implement IData {
INSTANCE; // only one instance
/* put your non static fields here */
/* put your methods for IData here */
}
public enum BuildingType {
MINER("Miner", "A basic slave.", StaticData.INSTANCE), FARM("Farm", "Old Macdonald's Crib."), BAKERY("Bakery", "Best Cookies in Town!"), FACTORY("Factory", "Highest Quality Memes in town!"), QUARRY("Quarry", "Let's get drilling!");
// later
BuildingType.MINER.getIData().setCookiesPerSecond(4);
关于java - 如何在 Java 中使用单独的枚举类引用静态类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35722507/