Java 8 可选代码审查

标签 java java-8 option-type

<分区>

我只是想检查我是否做对了。这是使用可选的正确方法还是可以改进?

String longitudeResult = "Address_Longitude is empty or null;";
String latitudeResult = "Address_Latitude is empty or null;";
if (Optional.ofNullable(location).isPresent()) {
    Optional<Double> longitude = Optional.ofNullable(location.getLongitude());
    Optional<Double> latitude = Optional.ofNullable(location.getLatitude());
    if (longitude.isPresent()) {
        longitudeResult = longitude.get().toString();
    }
    if (latitude.isPresent()) {
        latitudeResult = latitude.get().toString();
    }
}

最佳答案

如果您不使用它的组合器,Optional 就没有意义:

Optional<Location> locationOptional = Optional.ofNullable(location);
String longitudeResult = locationOptional
        .map(Location::getLongitude)
        .map(Object::toString)
        .orElse("Address_Longitude is empty or null;");
String latitudeResult = locationOptional
        .map(Location::getLatitude)
        .map(Object::toString)
        .orElse("Address_Latitude is empty or null;");

关于Java 8 可选代码审查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44821253/

相关文章:

java - 使用 SL4J 进行日志记录、Jakarta Commons 日志记录、第三方库的 log4j 和我自己的代码

java - 如何使用 Java Optional 优雅地替换三元运算符

xcode - 字典可选?快速困惑

swift - 在 Swift 中,如何在结构中将可选枚举初始化为 nil?

java - 如何在每个 Arraylist 项目中删除\n

ios - 如何从 Swift 中的 UIView 中删除所有手势识别器

java - 自动更新 OpenJPA 表

java - JPA:为什么所选对象的ID为空?

java - 哪里可以学习JNI函数的用法?

java - 从方法引用中捕获异常