如何处理空输入并转换为Object?无需if判断实现空校验返回null
处理空输入转换并避免显式if判断的方案
要在输入syndImage为null时返回null,同时不用写if空判断,可以用Java 8自带的Optional类来实现,代码如下:
public static Image convert(SyndImage syndImage) { return Optional.ofNullable(syndImage) .map(s -> Image.builder() .title(s.getTitle()) .url(s.getUrl()) .build()) .orElse(null); }
原理说明
Optional.ofNullable(syndImage):把输入值包装成Optional对象,输入为null时得到空Optional,非null时包装为包含该对象的Optional。map(...):仅当Optional非空时执行内部转换逻辑生成Image对象,空Optional会直接跳过此步骤。orElse(null):若最终是Empty Optional(即输入为null)则返回null,否则返回转换后的Image实例。
这种方式既规避了空指针异常,又完全不需要显式的if空判断,代码简洁易读。
内容的提问来源于stack exchange,提问作者user352290
相关产品推荐
相关产品推荐

