首页 > 解决方案 > 如何使用最少的代码比较整数?

问题描述

模型中有一个名为 foo 的整数属性。现在我需要知道它是等于 1 还是等于 2。通常我使用:

if (null != model) {
    Integer foo = model.getFoo();
    if (foo != null) {
        if (foo == 1) {
            // do something...
        }
        if (foo == 2) {
            // do something...
        }
    }
}

有没有更方便的代码来避免 NullPointerException?

标签: java

解决方案


您可以使用Optional

Optional.ofNullable(model)
        .map(Model::getFoo)
        .ifPresent(foo -> {
            switch (foo) { // or if-else-if, the important thing is you skip the null check
                case 1: 
                    ...
                    break;
                case 2:
                    ...
                    break;
                ...
            }

        });

推荐阅读