Java复制构造函数的;这";关键词
我有一个关于java的相当普遍的问题。 我想知道是否有一种简单的方法来在java中重建C++代码:Java复制构造函数的;这";关键词,java,c++,constructor,copy,this,Java,C++,Constructor,Copy,This,我有一个关于java的相当普遍的问题。 我想知道是否有一种简单的方法来在java中重建C++代码: class A { public: int first; int second; A(const A& other) { *this = other; } ... } 因此,基本上是一个复制构造函数,您可以在构造函数中传递a的新对象的现有对象,它将复制内容并构建a的现有对象的精确副本 尝试 class A { int first; int seco
class A
{
public:
int first;
int second;
A(const A& other) {
*this = other;
}
...
}
因此,基本上是一个复制构造函数,您可以在构造函数中传递a的新对象的现有对象,它将复制内容并构建a的现有对象的精确副本
尝试
class A {
int first;
int second;
public A(A other){
this = other;
}
...
}
遗憾的是,这不起作用,因为eclipse告诉我,赋值的左侧不允许使用“this”,因为它不是一个变量
我知道我会通过以下方式获得同样的结果:
class A {
int first;
int second;
public A(A other){
this.first = other.first;
this.second = other.second;
}
...
}
但是我想知道是否有更简单的方法,因为有时候你会有更多的类变量
提前谢谢 > P>你在该类的第三版本中有合法java,它和C++类做的事情一样,但是我认为没有比你写的更容易的方法。 回收代码的最佳方法:
class A {
int first;
int second;
public A(int f, int s){
this.first = f;
this.second = s;
}
public A(A a){
this(a.first, a.second); // id use getters instead ofc.
}
}
Java语言没有更简单的定义方法,但是有一些技巧可以让您做到这一点:
据我所知,直接映射之后最有效的方法是通过序列化机制。您可以创建一个私有构造函数,该构造函数接收所有变量,并让所有其他构造函数以某种方式调用该变量。您指的是一个构造函数,它接收该对象的实例,然后复制其数据。“这可能是最简单的了。”Daedric解释道——但不必单独复制它的变量。(我在想,在提交问题后是否误用了单词copy构造函数-这会导致混乱吗?)好的,非常感谢,我将看一下序列化!是的,序列化很好,但它比简单的构造函数更复杂。