相关疑难解决方法(0)

如何在Java中复制对象?

请考虑以下代码:

DummyBean dum = new DummyBean();
dum.setDummy("foo");
System.out.println(dum.getDummy()); // prints 'foo'

DummyBean dumtwo = dum;
System.out.println(dumtwo.getDummy()); // prints 'foo'

dum.setDummy("bar");
System.out.println(dumtwo.getDummy()); // prints 'bar' but it should print 'foo'
Run Code Online (Sandbox Code Playgroud)

所以,我想复制dumdumtwo并更改dum而不影响dumtwo.但上面的代码并没有这样做.当我改变某些内容时dum,也会发生同样的变化dumtwo.

我想,当我说dumtwo = dum,Java 复制引用.那么,有没有办法创建一个新的副本dum并分配给它dumtwo

java clone copy object

763
推荐指数
18
解决办法
109万
查看次数

java.util.Date克隆或复制以不公开内部引用

最佳做法是不公开Object(Entity)的内部引用.因此,如果一个Object有一个类型的字段,java.util.Date那么例如该字段的getter应该不返回原始日期而是它的副本.

但是对于java.util.Date,有两种常见的方法来创建该副本:

  • 克隆: (Date) originalDate.clone()
  • 通过构造函数复制 new Date(originalDate.getTime())

我的问题是,哪种方式更好,为什么?

java clone

64
推荐指数
3
解决办法
4万
查看次数

对象数组的深层副本

我想使用构造函数制作对象数组的深层副本.

public class PositionList {
    private Position[] data = new Position[0];

public PositionList(PositionList other, boolean deepCopy) {
        if (deepCopy){
            size=other.getSize();
            data=new Position[other.data.length];
            for (int i=0;i<data.length;i++){
            data[i]=other.data[i];
            }
Run Code Online (Sandbox Code Playgroud)

但是,由于某种原因,我上面所说的不起作用.我有运行的自动化测试,并且它没有通过这些测试.所以这里有一个错误,我不确定它是什么.

java arrays constructor copy object

13
推荐指数
1
解决办法
6万
查看次数

可以通过合并对可变对象的引用来公开内部表示

我的代码中有以下内容:但是为什么会出现声纳错误?错误在线:this.lastAccessTime = lastAccessTime;此处的日期已声明为私有。

public class myClass{

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "LAST_ACCESS_TIME", nullable = false)
    private Date lastAccessTime;

    /**
     * Constructor
     * 
     * @param userId the user id
     * @param screenName the name of screen
     * @param lastAccessTime time of last access
     */
    public userTO(String userId, String screenName, Date lastAccessTime)
    {
        this.userId = userId;
        this.screenName = screenName;
        this.lastAccessTime = lastAccessTime;


    }
}
Run Code Online (Sandbox Code Playgroud)

java sonarqube

0
推荐指数
1
解决办法
7705
查看次数

标签 统计

java ×4

clone ×2

copy ×2

object ×2

arrays ×1

constructor ×1

sonarqube ×1