Java Stream功能用法

时间:2016-12-12 21:06:45

标签: java

所以在我的游戏中,如果玩家使用项目#2中存储在枚举中的项目,我想使用java Stream函数并找到要调用的用法,如下所示这就是我想要做的/尝试。

if (itemUsed == TINDERBOX && useWith == FiremakingData.getLog(useWith).get().getLog()) {
    FiremakingData.DATA_SET.stream().forEach(log -> {
        FiremakingData.getLog(useWith).get().executeFire(player, useWith);
    });
}

空指针行是

if (itemUsed == TINDERBOX && useWith == FiremakingData.getLog(useWith).get().getLog()) {

这是我的流方法

public static Optional<FiremakingData> getLog(int log)
{
    return DATA_SET.stream().filter(Objects::nonNull).filter(logData -> logData.getLog() == log).findFirst();
}

代码应该在我正在尝试做的事情上非常直接,但是当它尝试执行操作时发送一个nullpointer或者在我使用它的任何其他项目上使用tinderbox。请帮我找到正确的用法!非常感谢男人/女孩!

0 个答案:

没有答案