这个A类在使用FastJson进行实体类转换的时候,会报错。
比如使用 JSONObject.parseObject(string, A.class);,会报 com.alibaba.fastjson.JSONException: create instance error, class com.example.demo.A$D
因为非静态成员嵌套类的实例化依赖于外部类实例,而静态嵌套类的实例化不依赖于外部类。
public class A {
public B b;
class B{
public C c;
private List<D> dList;
}
class C{
}
class D{
}
}
解决办法:
1、改为静态嵌套类。
public class A {
public B b;
class B{
public C c;
private List<D> dList;
}
static class C{
}
static class D{
}
}
2、改为内部类。
public class A {
public B b;
class B{
public C c;
private List<D> dList;
class C{
}
class D{
}
}
}
3、不放在同一个类中,新建单独的类。
public class A {
public B b;
class B{
public C c;
private List<D> dList;
}
}
class C{
}
class D{
}