在开发中我们经常会出现由于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类很强大