`
yourenyouyu2008
  • 浏览: 282630 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

空对象

阅读更多

问:

关于返回值, null, 和空对象的处理?

当函数的返回值的签名为对象,函数的最终结果为空时,是该返回null还是一个空对象呢?

我的程序遇到一个这样的问题,在Builder类中有一个函数

public String buildA(List infoData), 当计算结构为空是该返回null还是""呢?

在Director其中组装产品时会重复调用这个函数,当返回null时,每次都要检查这个对象是否

为空,因为结果要添加到StringBuffer中, 当返回""时, 不需要检查是否为空,直接添加即可,

公司的高手是返回null,每次都检查,感觉这样做很烦琐。

答:

返回null这种习惯估计是从C/C++中带来的.
我的处理是除非在某些场合下null也有其意义的时候才返回null.
否则要么返回一个empty的对象,要么抛出一个异常.

public String buildA(List infoData)
这种情况返回""是恰当的也是符合逻辑的.

hibernate相关处理

使用了空对象模式,应用不需要进行null判断

load

WfcpErrsinfomy=session.load(WfcpErrsinfo.class,111);

my.getA();

load返回的是MyCla的代理类实例,当没有对应的主键时也不为null,而是个空的代理类,当调用任何方法时就抛出异常。

org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [cn.ccb.wfcp.bo.brules.WfcpErrsinfo#1111]


createQuery.list

List list = session.createQuery("from WfcpErrsinfo bo where bo.reId=11111").list();
System.out.println(list.size());//
当没有记录时返回空的list ,list.size()==0.

定义各种空对象

空对象会节省内存开销

List lt=nodes.get(node.getTreeNodeId());
   if(lt==null){
    lt=new ArrayList(0);
   }
   return lt;

分享到:
评论

相关推荐

    3dmax一键清除空对象

    3dmax一键清除空对象 一键查找、清除3dmax场景中的空对象。

    关于axios返回空对象的问题解决

    但打印出来的时候就变成了空对象。 分析原因: 返回的参数都是正确的,只是打印的时候有问题,所以是打印的代码有误 查了一下 axios 的官方文档,才知道 console.log 的变量与字符串之间不能用 ‘+’ 连接,应该用 ...

    c++空对象指针也可调用成员函数.rar

    c++空对象指针也可调用方法.rar

    空对象模式

    在空对象模式(Null Object Pattern)中,一个空对象取代 NULL 对象实例的检查。Null 对象不是检查空值,而是反应一个不做任何动作的关系。这样的 Null 对象也可以在数据不可用的时候提供默认的行为。 在空对象模式...

    3dmax空对象清除器下载

    3dmax空对象清除器,在场景中找到空对象,向你显示这些对象的列表,并允许你从场景中删除它们。

    设计模式-空对象模式

    ios平台中通过最简单的代码讲解空对象模式,可在博客http://blog.sina.com.cn/s/blog_161d504630102wxis.html中查看简单解释

    optional-lite:optional lite - 一个类似于 C++17 的可选对象,一个用于 C++98、C++11 和更高版本的单文件头库中的可为空对象

    optional lite:C++17-like optional 的单文件头版本,C++98、C++11 和更高版本的可为空对象 内容std::optional、optional lite 和Boost.Optional 的比较报告与构建测试实施说明可选的其他实现注释和参考附录 示例...

    java常用设计模式-空对象模式

    java常用设计模式-空对象模式

    arcsde空对象查询

    在数据库中,会存在一些无效的对象,导致这种现象的发生原因很多,其中最常见的就是数据库升级(例如修改了表的结构),迁移而引起。

    js判断空对象的实例(超简单)

    最近项目遇到判断空对象的一个问题,查阅相关资料再进行总结一下。 判断空对象不比判断空字符串之类的,因为空对象也是一个对象,需要单独分配内存,而不是像字符串那样为空时就是大锅饭,大家都相等,如下代码: ...

    js删除对象/数组中null、undefined、空对象及空数组方法示例

    主要给大家介绍了关于js删除对象/数组中null、undefined、空对象及空数组的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编一起来看看吧

    空对象模式虚函数实现运行时多态策略模式

    空对象模式虚函数实现运行时多态策略模式 Java源码+运行结果+UML类图+分析文档

    Vue前端判断数据对象是否为空的实例

    Vue提供了强大的前端开发架构,很多时候我们需要判断数据对象是否为空,使用typeof判断是个不错选择,具体代码见图。 补充知识:vue打包后 history模式 跟子目录 静态文件路径 分析 history 根目录 路由mode变为...

    PHP使用new StdClass()创建空对象的方法分析

    创建一个没有成员方法和属性的空对象。 很多时候,程序员们会将一些参数配置项之类的信息放在数组中使用,但是数组操作起来并不是很方便,很多时候使用对象操作符->xxx比数组操作符[‘xxx’]要方便不少。于是就需要...

    NullObjectGenerator:一个为任何泛型类创建空对象的库

    空对象生成器 将为任何泛型类创建空对象的库。 该项目目前仍处于早期开发阶段,不应使用。

    LangUtil工具类

    将一个对象转化为一个字符串,对于空对象,转化为"";将一个字符串中的所有模式字符串替换为指定的内容;判断一个对象是否位于一个数组内

    Java如何优雅地判断对象是否为空

    这是一种常见的运行时异常,它会在试图访问或操作空对象引用时发生。为了避免这种异常的出现,我们需要在使用变量或对象之前,进行仔细的判空校验,以确保它们的值是有效的,或者它们不是空值。通过进行判空校验,...

    js判断对象是否为空

    即可以通过返回数组的长度来判断是否为空对象,若为空对象,该数组长度为0。例: let person={name:张三,age:20} if (Object.keys(person).length == 0) { //数据为空 return true }else{ return false } 二、...

    Blender插件-排除空物体

    1.Blender插件 2.在选中的物体中包含空物体时可以快速排除掉空物体 3.使用教程:https://blog.csdn.net/qq_26318597/article/details/126018970

Global site tag (gtag.js) - Google Analytics