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

时间:2014-04-12 11:00:31

标签: java object copy

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

有没有办法做到这一点。 问题 : A = Obj ....不工作 如果我使用Switch case或任何循环,并将Obj声明为所选类的对象,则为范围问题。

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

3 个答案:

答案 0 :(得分:0)

如果对象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
}

或覆盖clone中的MyClass方法。 注意:大多数人都同意Java的克隆被破坏。您可以在 Effective Java 2nd Edition 中阅读有关该主题的更多讨论,第11项:明智地覆盖克隆。他建议改为使用复制构造函数或复制工厂。

答案 1 :(得分:0)

我看到你标记了java和C ++,你正在使用哪一个?

你的陈述很难理解,但如果我是对的,你有类似的东西:

ClassA A = new ClassA()
ClassB B = new ClassB()

你想要从obj A到obj B复制一些东西吗?使用此:

B.set(A.get());

答案 2 :(得分:0)

如果您正在使用C ++,那么您可以通过执行此操作来识别类的名称,

 #include <typeinfo>.
..
..
..
.
cout << typeid(objA).name() << endl;

我相信你在根据用户输入确定课程时遇到问题...... 在这种情况下,typeid可以工作。只需检查用户选择的类,并根据输入的任务执行。