前几条回答说的很好,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
Java数据类型的转换原则从低精度向高精度转换
byte 、short、int、long、float、double、char
注:两个char型运算时,自动转换为int型;当char与别的类型运算时,也会先自动转换为int型的,再做其它类型的自动转换
基本类型向类类型转换
正向转换:通过类包装器来new出一个新的类类型的变量
Integer a= new Integer(2)
反向转换:通过类包装器来转换
int b=a.intValue()
类类型向字符串转换
正向转换:因为每个类都是object类的子类,而所有的object类都有一个toString()函数,所以通过toString()函数来转换即可
反向转换:通过类包装器new出一个新的类类型的变量
eg1: int i=Integer.valueOf(“123”).intValue()
说明:上例是将一个字符串转化成一个Integer对象,然后再调用这个对象的intValue()方法返回其对应的int数值。
eg2: float f=Float.valueOf(“123”).floatValue()
说明:上例是将一个字符串转化成一个Float对象,然后再调用这个对象的floatValue()方法返回其对应的float数值。
eg3: boolean b=Boolean.valueOf(“123”).booleanValue()
说明:上例是将一个字符串转化成一个Boolean对象,然后再调用这个对象的booleanValue()方法返回其对应的boolean数值。
eg4:double d=Double.valueOf(“123”).doubleValue()
说明:上例是将一个字符串转化成一个Double对象,然后再调用这个对象的doubleValue()方法返回其对应的double数值。
eg5: long l=Long.valueOf(“123”).longValue()
说明:上例是将一个字符串转化成一个Long对象,然后再调用这个对象的longValue()方法返回其对应的long数值。
eg6: char=Character.valueOf(“123”).charValue()
说明:上例是将一个字符串转化成一个Character对象,然后再调用这个对象的charValue()方法返回其对应的char数值。