gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 23:14:21 26 4
gpt4 key购买 nike

我来自 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com