实例化这个'对象

时间:2018-03-15 22:58:50

标签: java class oop serialization

我尝试使用类似这样的方法在类中加载序列化对象:

private void loadCatalog(MyClass myClassNew)
{
    this = myClassNew;
}

所以我在 MyClass 中使用了这个方法,并且我收到了一个类型为 MyClass <的对象作为参数/ strong>即可。我怎么能做上面这样的事情?上面的代码给了我一个错误,我不知道为什么。对象myClassNew与序列化之前的对象相同,因此我确信收到 MyClass 类型的有效对象。

2 个答案:

答案 0 :(得分:1)

没有办法做到这一点。您必须编写将MyClass的每个实例字段从参数复制到this的代码。例如:

this.firstName = myClassNew.firstName;
this.lastName = myClassNew.lastName;

可以使用反射做,但你可能不应该。除非MyClass非常简单,否则您可能会发现某些字段需要特殊处理。例如,复制List引用会非常糟糕,除非它是一个不可修改的List,因为这两个对象应该共享对同一个List对象的引用。

答案 1 :(得分:0)

您将收到错误消息:

The left-hand side of an assignment must be a variable

&#34;这&#34;不是您可以分配的变量。你可以在对象中创建字段并执行&#34; this.field1 = myClassNew&#34;,但你不能分配给&#34;这个&#34;。