尝试创建一个通用的表达式求值程序,该求值程序根据为评估传入的params类型进行推广
public interface Expression<T> {
Boolean evaluate(LinkedHashMap<String, T> params) throws Exception
}
public class JavaScriptExpression implements Expression<Object> {
...
}
我有一个Condition类型来托管这个表达式并对其进行求值并将其返回true
public class Condition<T extends Expression> {
private T expression;
public Optional<Step> execute(LinkedHashMap<String, R> variableMapping) {
}
}
上述R
中的 execute(LinkedHashMap<String, R>)
基于类型T
传入的表达式类型,如果JavaScriptExpression,R是Object等,
如何使用泛型
在类型定义中编码此类型信息答案 0 :(得分:3)
您需要将R
作为类型参数添加到Condition
。
public class Condition<T extends Expression<R>, R> {