首页 > 解决方案 > Android中的可选类

问题描述

我尝试在 android studio 中编译这段代码:

public class Test {
    public void test() {
        java.util.Optional.of(12).orElseThrow(RuntimeException::new);
    }
}

它需要处理 Throwable。

但是这个方法的签名是下一个:

public <X extends Throwable> T orElseThrow(Supplier<? extends X> exceptionSupplier) throws X 

我从 Android/Sdk/platforms/android-27 中的 android.jar 中提取 Optional.class 并使用 android studio 对其进行反编译。它有错误的签名:

public <X extends Throwable> T orElseThrow(Supplier<? extends X> exceptionSupplier) throws Throwable

我做错了什么?

谢谢你。

标签: javaandroidoptionalthrowable

解决方案


如果您需要使用java.util.Optional这种方式尝试:

if(!java.util.Optional.of(12).isPresent()){
     throw new RuntimeException();
}

推荐阅读