gpt4 book ai didi

java - 用接口(interface)推断泛型 - java

转载 作者:搜寻专家 更新时间:2023-10-30 23:03:04 24 4
gpt4 key购买 nike

我有以下界面:

public interface Evaluator<T> {
T evaluate(Collection<Extractable> sample);
}

还有一个实现该接口(interface)的类:

public class PrecisionEvaluator implements Evaluator<Map<Triple<Short, Integer, String>, AttributePrecisionBean>> {

@Override
public Map<Triple<Short, Integer, String>, AttributePrecisionBean> evaluate(Collection<Extractable> sample){
...

所以上面的用法是:

Evaluator<Map<Triple<Short, Integer, String>, AttributePrecisionBean>> eval = new PrecisionEvaluator();

有没有办法让接口(interface) Evaluator 隐式返回在实现它的类中定义的泛型类型?这样用法就是:

Evaluator eval = new PrecisionEvaluator();

或者是否有更简洁的方法来解决这个问题?

最佳答案

是的,有一种方法可以做到:学习 Scala,它的语法比 Java 简单得多,这要归功于编译器类型推断等其他原因。

更严重的是,如果你使用Evaluator,你不能用Java做得更好单独它将被编译为 Evaluator<Object> ,这将不允许您拥有类型安全和多态性。您在这里所能做的就是创建一个类 class CustomTriple extends Triple<Short,Integer,String>>有更短的东西。

关于java - 用接口(interface)推断泛型 - java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26673716/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com