Java Android Studio在使用OrelsThrow方法时需要捕获可丢弃的对象

Java Android Studio在使用OrelsThrow方法时需要捕获可丢弃的对象,java,android,optional,Java,Android,Optional,我正在Android Studio中编写一个应用程序。我目前的版本是3.1.0。我试图使用可选类中的orElseThrow方法。我检查了Android Studio的设置,它要求API级别至少为24才能使用可选的。我目前使用的是API级别25,我的JDK是1.8.0_151 我使用一个空活动创建了一个新的Android Studio项目。我创建了一个名为TestClass的类,该类包含以下代码: package com.examples.myapplication; import java.u

我正在Android Studio中编写一个应用程序。我目前的版本是3.1.0。我试图使用可选类中的orElseThrow方法。我检查了Android Studio的设置,它要求API级别至少为24才能使用可选的。我目前使用的是API级别25,我的JDK是1.8.0_151

我使用一个空活动创建了一个新的Android Studio项目。我创建了一个名为TestClass的类,该类包含以下代码:

package com.examples.myapplication;

import java.util.Arrays;
import java.util.List;

public final class TestClass {

    private final List<Integer> numbers;

    public TestClass() {
        numbers = Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
    }

    public final int doesNumberExist(final int number) {
        return numbers.stream().filter(n -> n == number).findAny().orElseThrow(RuntimeException::new);
    }
}
我曾尝试在不同的IDE中运行orElseThrow方法,但这行代码没有编译时错误,因此我认为问题出在AndroidStudio中,但我无法找出导致问题的原因。我尝试过提高API级别,但我只能提高到26级,而这没有起到任何作用

根据我对orElseThrow()方法工作方式的理解,您必须处理的异常类型是您在方法调用中抛出的任何选中的异常。在本例中,我使用了RuntimeException,因此我不必处理捕获任何异常的操作。

public final int doesNumberExist(final int number)抛出Throwable{
public final int doesNumberExist(final int number) throws Throwable {
    Optional<int> f = numbers.stream().filter(n -> n == number).findAny();
    return  f.orElseThrow(RuntimeException::new);
}
可选f=numbers.stream().filter(n->n==number.findAny(); 返回f.orelsetrow(RuntimeException::new); }
如果你能用一个新的代码更新你的问题,那将是非常有帮助的,这样我们就可以重现问题。很棒的建议@Radiodef&a技巧:
[mcve]
在注释中自动扩展到。问题对我来说似乎是完整的,上面的代码也重现了问题。我已经就此提出了一个问题:尽管这段代码可能(也可能不是)在工作中,一个好的答案应该总是解释问题是什么以及如何解决。
public final int doesNumberExist(final int number) throws Throwable {
    Optional<int> f = numbers.stream().filter(n -> n == number).findAny();
    return  f.orElseThrow(RuntimeException::new);
}