我对这门语言很陌生。我有一个对象,我想通过值将它传递给另一个方法:
// Drawings
class Drawings
{
// Has some variables
Drawings()
{
}
// Hass some methods
}
class History
{
ArrayList<Drawings> prevDrawings;
History()
{
this.prevDrawings = new ArrayList<Drawings>();
}
void add(Drawings newDrawing) {}
}
现在,我说我有一个Drawings myDrawing
和History myHistory
,我希望将myDrawing
按值传递给myHistory
。以下方式通过引用传递它:
myHistory.add(myDrawing);
我怎样才能通过值传递它?
答案 0 :(得分:0)
Java中的所有内容,以及因此处理,都已经按值传递。没有任何内容通过引用传递。
您可能想要将Object的副本传递给方法。有多种方法可以做到这一点。假设您将此作为对象:
class MyObject{
String thing1;
double thing2;
int thing3;
}
您可以在MyObject类之外创建一个复制方法:
public MyObject copy(MyObject original){
MyObject copy = new MyObject();
copy.thing1 = original.thing1;
copy.thing2 = original.thing2;
copy.thing3 = original.thing3;
}
您可以在MyObject类中创建一个复制方法:
class MyObject{
String thing1;
double thing2;
int thing3;
public MyObject copy(){
MyObject copy = new MyObject();
copy.thing1 = this.thing1;
copy.thing2 = this.thing2;
copy.thing3 = this.thing3;
}
}
或者您可以创建一个复制构造函数:
class MyObject{
String thing1;
double thing2;
int thing3;
public MyObject(MyObject copy){
this.thing1 = copy.thing1;
this.thing2 = copy.thing2;
this.thing3 = copy.thing3;
}
}
您也可以使用序列化,但这有点超出正常处理范围。