Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将一个类的对象复制到另一个类的对象…noob_Java_Object_Copy - Fatal编程技术网

Java 将一个类的对象复制到另一个类的对象…noob

Java 将一个类的对象复制到另一个类的对象…noob,java,object,copy,Java,Object,Copy,我试图让用户选择在哪个类上执行函数。 假设有两个类包含对象A和B 函数使用像obj.get和obj.set这样的函数。 我想在A和B之间进行选择,并将其复制到obj 有办法吗。 问题: A=Obj…不工作 若我使用Switch case或任何循环,并将Obj声明为所选类的对象,那个么范围就会出现问题 请帮忙!! 两个类都有完全相同的变量和方法。如果两个对象A和B都属于同一个类,就这样做: 事实上,如果A和B有完全相同的字段和方法,那么它们应该属于同一个类,如果它是一个真正的程序 MyClass

我试图让用户选择在哪个类上执行函数。 假设有两个类包含对象A和B 函数使用像obj.get和obj.set这样的函数。 我想在A和B之间进行选择,并将其复制到obj

有办法吗。 问题: A=Obj…不工作 若我使用Switch case或任何循环,并将Obj声明为所选类的对象,那个么范围就会出现问题

请帮忙!!
两个类都有完全相同的变量和方法。

如果两个对象A和B都属于同一个类,就这样做:

事实上,如果A和B有完全相同的字段和方法,那么它们应该属于同一个类,如果它是一个真正的程序

MyClass A,B;
//...
A = copy(B);
/*
 * 
 * 
 * 
 * 
 */
MyClass copy(MyClass arg) {
    MyClass result = new MyClass();
    result.field1 = arg.field1;
    result.field2 = arg.field2;
    //........
    return result
}
或者重写MyClass中的clone方法。
注意:大多数人都同意Java的克隆已被破坏。您可以在《有效的Java第二版》第11项:明智地覆盖克隆中阅读更多关于该主题的讨论。他建议使用复制构造函数或复制工厂。

我看到你标记了java和C++,你用哪个? 你的陈述很难理解,但如果我是对的,你有以下几点:

ClassA A = new ClassA()
ClassB B = new ClassB()
你想把东西从obj A复制到obj B?使用以下命令:

B.set(A.get());

如果你使用C++,那么你可以通过这样做来识别类的名称,

 #include <typeinfo>.
..
..
..
.
cout << typeid(objA).name() << endl;
我相信您在根据用户输入识别类时遇到问题。。。
在这种情况下,typeid将起作用。只需检查用户选择的类以及基于输入的任务。

我只想创建一个对象,具体取决于用户的选择。这将复制内容。我想让其他类的对象指向第一类的变量,这是可能的吗?