java 中对象转换

例如一个对象A中有属性a,b,c,d一个对象B有属性a,b,c他们之间没有关系,我想把A转换为B可以么?如果可以怎么实现?把B转换成A可以么?如何实现、... 例如 一个对象A 中 有属性a,b,c,d 一个对象B 有属性 a ,b,c 他们之间没有关系, 我想把 A 转换为B 可以么? 如果可以怎么实现?
把B转换成A 可以么? 如何实现、
展开
 我来答
mzocean
推荐于2017-11-26 · TA获得超过1083个赞
知道小有建树答主
回答量:492
采纳率:33%
帮助的人:467万
展开全部

前几条回答说的很好,A与B之间没有继承关系,是没有办法直接转换的,我这里给你几个转换的想法。

1、在A类或者B类中加入对方的引用:

class A{
    private B bClass;
}
class B{
    private A aClass;
}

使用时可以通过某些方法初始化或者获取另一个类,这个方法缺点就是比较冗余。

2、看你这里应该是A为子类,就建立一个新类B2继承自B,在其中有A类的引用,这样就可以用B2类代替A:

class B2 extends B{
    private A aClass;
    public B2(){
        this.aClass=new A();
    }
    public B2(A a){
        this.aClass=a;
    }
    public setA(int a){
        this.aClass.set(a);
    }
    //其他类似方法
    //……
    public A toAClass(){
        return aClass;
    }
}
//转换代码
A a=((B2)b).toAClass();//B to A
B b=new B2(a);//A to B
截竹为萧
2013-08-26 · TA获得超过155个赞
知道小有建树答主
回答量:162
采纳率:0%
帮助的人:195万
展开全部
只有相同的继承体系中的类对象和之间才能进行转换。简单记住满足 A is B;这样的就能转换,比如一个 Animal对象,一个Dog 对象。Dog is Animal;所以可以转换。

如果 把Dog转换成Animal对象,这样为向上转型。
直接 Animal a=new Dog();

与向上转型相反,即是把父类对象转为子类对象。
Animal a=new Animal();
Dog dog=(Dog)a;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友25d96a16a
2013-08-26 · TA获得超过111个赞
知道答主
回答量:99
采纳率:0%
帮助的人:56.8万
展开全部
如果A、B是两个相对独立的对象,则它们的属性没有关系。如果A、B有继承关系,那它们的属性就比较复杂了,要分多种情况讨论,推荐你找一本JAVA的书,认真看一下里边的‘类的继承、多态’这一章。关于转换,一般直接用括号强制转换,如A a = (A)b;
追问
现在我说的就是 没有任何关系, 他们可以强转么。 因为我不想改任意一个对象的属性,因为这个 所以 我才会想到 两个对象是否能转换
追答
没有关系则不能强转。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式