我过去曾经使用过列表,但遇到了同样的问题。我用this问题来回答。但是,当我创建一个名为Value
的新抽象类并以以下方式使用它时:public Value<Boolean> preferSwords = new Value<>("PreferSwords", true);
我得到了错误。值类:
package Cupert.util;
import com.google.gson.JsonObject;
import java.util.function.Predicate;
public abstract class Value<T> {
private String name;
private T object;
private T defaultVal;
/**
* The validator which is called every time the value is changed
*/
private Predicate<T> validator;
Value(String name, T defaultVal, Predicate<T> validator) {
this.name = name;
this.object = defaultVal;
this.defaultVal = defaultVal;
this.validator = validator;
}
public abstract void addToJsonObject(JsonObject obj);
public abstract void fromJsonObject(JsonObject obj);
public String getName() {
return name;
}
public T getObject() {
return object;
}
public boolean setObject(T object) {
if (validator != null && !validator.test(object)) return false;
this.object = object;
return true;
}
public void setValidator(Predicate<T> validator) {
this.validator = validator;
}
public Object getDefault() {
return defaultVal;
}
}