父类强转为子类

很少情况下需要这样干,但是在DTO层与entity层分开时,DTO层继承entity,再给DTO层赋值时不能直接将entity转为dto,因为子类有些属性,父类没有,所以强转会出现错误。
但是又需要这样强转,怎么办呢,如果手动的取出父类的属性依次填入,这样很耗时。

解决方案是先把父类转jsonstring再把jsonstring转子类。剩余的子类值可以设定进去。这样两个类的重复值就不用重新设置值了。

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;
    }
}

说在最后的话:编写实属不易,若喜欢或者对你有帮助记得点赞+关注或者收藏哦~

你可能感兴趣的:(java)