【发布时间】:2019-04-07 23:08:45
【问题描述】:
我正在实现一个类来存储可以分配 double 值的对象。为此,我创建了一个 HasDoubleValue 接口,其中包含一个方法:
public interface HasDoubleValue{
public double doubleValue();
}
我的主类是这样定义的:
Data <O extends HasDoubleValue> {...}
现在,当我尝试初始化此类以存储整数时,我收到“类型参数整数不在类型变量 O 的范围内”错误,尽管 Integer 实现了 doubleValue() 方法默认情况下。
我想这是因为 Integer 没有显式实现我的 HasDoubleValue 接口,尽管它具有我正在寻找的方法。这是正确的吗?自然的解决方法是什么?
【问题讨论】:
-
在这种情况下,使用 DoubleSupplier 作为 lambda 将允许您在不更改所涉及的类的情况下调用它。
标签: java interface integer implementation implicit