当前位置:  开发笔记 > 编程语言 > 正文

不可变类型是否需要复制构造函数?

如何解决《不可变类型是否需要复制构造函数?》经验,为你挑选了0个好方法。

说我有一个不可变的DecimalNumber类:

public final class DecimalNumber {

    public final String str;

    public DecimalNumber(String str) { this.str = str; }
    public DecimalNumber(DecimalNumber copy) { this(copy.str); }

    public boolean isZero() {...}

    public DecimalNumber add(DecimalNumber other) {...}

    ...

}

我决定这样实施add:

public DecimalNumber add(DecimalNumber other) {

    if (other.isZero())
        return /* the same object */

    ...

}

我应该返回this(减少内存使用)还是复制对象new DecimalNumber(this)

我认为简单地返回this应该没问题,但是创建一个新对象是有益还是有理由?或者它是否是首选?

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有