java - Java中的`*this = rhs`?

标签 java c++

我来自 C++ 世界,我找不到以下 Java 替代方案(如果有的话):

struct SomeStruct
{
    SomeStruct(){}
    SomeStruct(const SomeStruct& rhs)
    {
        *this = rhs;
    }
};

我需要它的原因是我有一个现有对象的缓存,所以我不想创建另一个实例,而只是“克隆”现有的实例,如下所示:

public class SomeObject
{
    private static Hashtable _objects;
    SomeObject()
    {
        SomeObject obj = _objects.get(some_key);
        if (obj != null) {
            // *this = obj;
            // instead of: 
            // this.something = obj.something;
            // this.something1 = obj.something1;
            // this.something2 = obj.something2;
            // a zillion fields....
        }
    }
};

编辑:

对不起,我把一些东西弄糊涂了(仍然需要同时学习 Java 和 C++)。

谢谢

最佳答案

最接近的是Object.clone()但请阅读 Effective Java 中的相关部分首先。

如果您删除一些要求,可能会有更简单的方法来做您想做的事。例如,如果您使您的对象不可变,那么您不需要将数据复制到另一个对象中。相反,您可以返回对原始对象的引用。这比按成员复制要快得多,并且还有许多其他好处,例如更容易编写线程安全代码。

关于java - Java中的`*this = rhs`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5068607/

相关文章:

java - 创建索引请求映射在 Elasticsearch 中失败

java - 使用 spring mvc 从 HttpServletRequest 获取数据

java - Hibernate 级联继承

c++ - 监听 UDP 端口

c++ - 逐行读取文件的问题

C++ : syntax for passing iterator to a function?

java - 是否可以将 Object 对象作为方法参数传递

c++ - 取回原始类型的 boost 变体变量

c++ - 如何生成所有 float ?

java - 如何以编程方式分析java类中使用的其他类的方法调用和对象