我可能弄错了,但我收到了一个错误 Optional<>
作为 Java 中的方法参数。
我有一个界面:
public interface FooInterface;
以及实现它的类
public class Foo implements FooInterface;
现在,假设我有一个接收 Optional<FooInterface>
的方法
someMethod(Optional<FooInterface> arg)
如果我这样做,我会收到错误:
Optional<Foo> foo = Optional.of(new Foo());
someMethod(foo);
它说Optional<FooInterface>
预计而不是 Optional<Foo>
.
这是为什么?
最佳答案
使用接口(interface)类型
FooInterface
:final FooInterface foo = new Foo(); final Optional<FooInterface> optional = Optional.of(foo);
将参数类型更正为
Optional<? extends FooInterface>
。它将允许传递Optional<AnyFooInterfaceSubclass>
.
关于java - 可选参数无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48098050/