Java通用层次结构定义

时间:2017-03-27 10:03:33

标签: java generics

尝试创建一个通用的表达式求值程序,该求值程序根据为评估传入的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等,

如何使用泛型

在类型定义中编码此类型信息

1 个答案:

答案 0 :(得分:3)

您需要将R作为类型参数添加到Condition

public class Condition<T extends Expression<R>, R> {