java - 可选参数无法正常工作

标签 java option-type

我可能弄错了,但我收到了一个错误 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> .

这是为什么?

最佳答案

  1. 使用接口(interface)类型 FooInterface :

    final FooInterface foo = new Foo();
    final Optional<FooInterface> optional = Optional.of(foo);
    
  2. 将参数类型更正为 Optional<? extends FooInterface> 。它将允许传递 Optional<AnyFooInterfaceSubclass> .

  3. Try not using the Optional for parameters and fields.

关于java - 可选参数无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48098050/

相关文章:

java - 编写 Java 8 可选对象

java 8 不止一次检查可选的空值

java - 使用 Java 计算字符串中子字符串的出现次数和顺序

java - 如何在 Java 中使用替换来交换反斜杠和双引号的空格

java - 如果没有本地仓库并且没有为maven设置环境变量,spring boot如何使用maven?

haskell - Haskell 中的偏函数图 : a -> Maybe b -> [a] -> [(a, b)]

java - 将 POJO 值传递到 Mule ESB 中的数据库

java - 如何防止基于正在使用的 Activity spring 配置文件执行 CommandLineRunner run() 方法?

java - 避免在控制逻辑中使用 isPresent() 和 get()

ios - AppDelegate:在解包可选值时意外发现 nil