重温java知识(三十四、常用类库之六:Optional空处理)

在开发中我们经常会出现由于null所带来的NullPointerException异常,利用Optional类可以实现null类型的提前判断与处理。

使用Optional实现对象返回的例子:

package com.mydemo;

import java.util.Optional;

public class OptionalDemo {

    public static void main(String[] args) {

        // 获取实例
        Optional<IMessage> optionalIMessage = MessageUtil.getMessage();

        // 判断对象实例是否存在
        if(optionalIMessage.isPresent()){
            // 获取数据
            IMessage tem = optionalIMessage.get();

            // 使用数据
            MessageUtil.useMessage(tem);
        }
    }
}

class MessageUtil{

    private MessageUtil(){}

    /**
     * 返回IMessage类的实例化对象,由于返回类型为Optional,
     * 所以该方法一定不会返回null内容
     * @return
     */
    public static Optional<IMessage> getMessage(){
        // 保存非空对象
        return Optional.of(new MessageImpl());
    }

    /**
     * 使用消息
     * @param iMessage
     */
    public static void useMessage(IMessage iMessage){
        // 输出消息
        System.out.println(iMessage.getContent());
    }
}

// 定义接口
interface IMessage{

    // 返回数据内容
    public String getContent();
}

// 接口实现子类
class MessageImpl implements IMessage{

    @Override
    public String getContent() {
        return "听说Optional类很强大";
    }
}
运行结果:
听说Optional类很强大
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值