1. 问题描述
Java父类转子类我以前学习的时候没有看到有啥问题,但是在实际开发中的就出现了一些不能强转的问题,所以,在网上找解决办法,最后有了下面一篇文章。
2. 解决思路
一般子类可以转父类,但父类转子类就会报cast error。
使用jsonObject,先把父类转jsonString,再把jsonString转子类,剩余的子类的值可以set进去。
3. 代码示范
import com.alibaba.fastjson.JSONObject;
public class test {
public static void main(String[] args) {
B b = new B();
b.setB("1");
String ob = JSONObject.toJSONString(b);
A a = (A)JSONObject.parseObject(ob, A.class);
a.setA("2");
System.out.println(a.getA());
}
}
class A extends B {
private String a;
public String getA() {
return a;
}
public void setA(String a) {
this.a = a;
}
}
class B {
private String b;
public String getB() {
return b;
}
public void setB(String b) {
this.b = b;
}
}
网友评论