java - 如何转换不互相继承的对象?

标签 java object casting

我有两个具有不同字段的不同类,以及一个包含两个类的所有字段的类。有没有办法将对象转换为两个单独的对象?

class A{
    private int a;
    private int b;
}

class B{ 
    private int a;
    private int b;
}

如果对象D具有A类和B类的所有属性,有什么方法可以分别转换它们吗?

最佳答案

从子级到父级(向下转型)或反之亦然(向上转型)进行转换:

class A extends B
B b = (B)(new A());

或者对于接口(interface):

List<String> myList = new ArrayList<>();
ArrayList<String> myArrayList = (ArrayList)myList;

转换时要小心 - 如果无法转换,您将收到 Exception!

就您而言,映射就是您所寻找的。您只需要一个映射器。

例如:

public class AToBMapper {
    public static A fromB(B b) {
        A a = new A();
        a.setA(b.getA());
        a.setB(b.getB());
        return a;
    }

    public static B fromA(A a) {
        //fill in
    }
}

关于java - 如何转换不互相继承的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45409944/

相关文章:

java - FindBugs 排除过滤器的问题

用于填充 ComboBox 的字符串数组的 Java 代码

java - 为什么我的 @BeforeClass 方法没有运行?

javascript - Object.assign - 合并数组值

c# - 泛型方法中的 InvalidCastException

java - 需要设计建议以跳过对象类型转换

java - 如何隐藏java swing表单中的文本区域?

java - 如何添加两个对象?

javascript - HackReactor,编码窗口现在可以使用名为 "Admissions"的方法访问名为 "showApp"的对象。不带任何参数调用此方法?

c++ - 在 c++ 中从 long long 转换为 int 和其他方式