在 Java 文件中获取“未定义类型 Optional 的方法 isEmpty()”错误

Jos*_*eda 3 java eclipse is-empty

我的 Eclipse Java 编译器无法识别代码中的isEmpty方法。我知道isEmpty来自 Java 1.6,但我使用的是 1.8。我也试过导入org.apache.commons.lang.StringUtils,但这不起作用。我错过了什么?

@Repository("fakeDao") 
public class FakePersonDataAccessService implements PersonDao {
    
    private static List<Person> DB = new ArrayList<>();
    
    @Override
    public int insertPerson(UUID id, Person person) {
        DB.add(new Person(id, person.getName()));
        return 1;
    }

    @Override
    public List<Person> selectAllPeople() {
        return DB;
    }
    
    @Override
    public int deletePersonById(UUID id) {
        Optional<Person> personMaybe = selectPersonById(id);
        if (personMaybe.isEmpty()) {
            return 0;
        }
        DB.remove(personMaybe.get());
        return 1;
    }
    
    @Override
    public Optional<Person> selectPersonById(UUID id) {
        return DB.parallelStream()
                .filter(person -> person.getId().equals(id))
                .findFirst();
    }

    @Override
    public int updatePersonById(UUID id, Person person) {
        return 0;
    }

}
Run Code Online (Sandbox Code Playgroud)

gre*_*449 6

isEmpty方法Optional直到 Java 11 才被添加。

对于 Java 8,您将不得不使用 ! isPresent()