1。简介在实际的系统运行过程中,难免会报NullPointerException。其本质原因是数据或对象为空,导致程序进一步执行时报错!一般常规的解决方案也是加一个if判断即可。if(obj!=null){//doSomthing}如果需要判断的对象太多,难免会有很多Null的判断语句,一旦这些语句增多,我们的代码就会变得惨不忍睹。针对这种情况,我们可以引入空对象模式,让我们的代码更加优雅。废话不多说,直接上代码!2.程序示例下面,我们以从图书图书馆获取图书为例。执行过程如下!首先创建一个抽象书类AbstractBook,代码如下:publicabstractclassAbstractBook{//书名protectedStringbookName;//判断是否存在publicabstractbooleanisExist();//获取书名publicabstractStringgetName();}然后,创建具体的实现类Book,如下:publicclassBookextendsAbstractBook{publicBook(StringbookName){this.bookName=bookName;}@OverridepublicbooleanisExist(){returnfalse;}@OverridepublicStringgetName(){returnbookName;}}接下来创建一个空对象NullObjectBook,如下:publicclassNullObjectBookextendsAbstractBook{@OverridepublicbooleanisExist(){returntrue;}@OverridepublicStringgetName(){return"No...";}}同时创建图书获取工厂BookFactory,如下:publicclassBookFactory{publicstaticfinalString[]names={"javacorevolume1","javacorevolume2","SoftwareCaprice","PythonIntroduction"};publicstaticAbstractBookgetBook(StringbookName){for(inti=0;i
