Java父类转子类我以前学习的时候没有看到有啥问题,但是在实际开发中的就出现了一些不能强转的问题,所以,在网上找解决办法,最后有了下面一篇文章。

2. 解决思路

一般子类可以转父类,但父类转子类就会报cast error。
使用jsonObject,先把父类转jsonString,再把jsonString转子类,剩余的子类的值可以set进去。

需要转成的对象 = JSONObject.parseObject(JSONObject.toJSONString(需要被转的对象), 需要转成的类.class);

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;

参考文章:https://www.cnblogs.com/guochunyi/p/5833962.html

1. 问题描述Java父类转子类我以前学习的时候没有看到有啥问题,但是在实际开发中的就出现了一些不能强转的问题,所以,在网上找解决办法,最后有了下面一篇文章。2. 解决思路一般子类可以转父类,但父类转子类就会报cast error。使用jsonObject,先把父类转jsonString,再把jsonString转子类,剩余的子类的值可以set进去。3. 代码示范import com.alibaba.fastjson.JSONObject;public class test { Student s=p; //错误 3.只有父类对象指向子类,那么父类是可以强制换成子类,如果父类对象没有指向子类,那么强制换就会报错的 Person p=new Person(); Student s=new Student(); s=(stud. 1:父类换成子类不能自动完成 2:父类换成子类的前提是父类的真身是这个子类 3:如果这个父类的真身是子类B,不能强制换成子类A,只能换成B. class Teacher2{ String name = “王鹏”; public void Teach(){ System.out.println(name+“在教课”); class JavaTeac... % 龙格库塔方法求解 [t, y] = ode45(@(t, y) rotor_equations(t, y, J, k, c, m, r, e, w), tspan, y); % 绘制子的振幅响应 plot(t, y(:, 1)); xlabel('时间 (s)'); ylabel('振幅 (m)'); title('子的外部不平衡激励振幅响应'); function dydt = rotor_equations(t, y, J, k, c, m, r, e, w) % 子的运动方程 dydt = [y(2); (e * sin(w * t) - k * y(1) - c * y(2)) / (m * r^2 + J)]; 【问题已解决】The server time zone value '?й???????' is unrecognized or represents more than one time zone 41851 【问题已解决】The server time zone value '?й???????' is unrecognized or represents more than one time zone Generation Z405: 表情包哭了 一堆错误直接全部解决 vue+ElementUI实现表关联 xflovech: 这个basesOptions哪里来的,直接在下来看定义用吗 git将一个分支的提交合并到另一个分支 顾白白90: ommit 82ecb31这个是提交之后生产的commit id的前7位吗 【html css】DIV+CSS如何让图片和文字在同一行 Pang_Yuan: 文字被图片盖住了,咋整!!! git将一个分支的提交合并到另一个分支 Shfivey: 就这还8个收藏,这8个人也是绝绝子