java内部类转化问题

错误示范(伪代码):

@Data
public class User {

	private String userName;

	private String addr;

	private int age;

	private List<Girlfriend> girlfriends = new ArrayList<>();
	
	@Data
	public class Girlfriend {

		private String girlName;

		private int girlAge;

		private String girlAddr;
	}
}
	

然后我在调用这个接口insert的时候就报错了:
JSON parse error: Cannot construct instance of com.drm.entity.User$Girlfriend (although at least one Creator exists): can only instantiate non-static inner class by using default, no-argument constructor; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of com.drm.entity.User$Girlfriend (although at least one Creator exists): can only instantiate non-static inner class by using default, no-argument constructor\n at [Source: (PushbackInputStream); line: 5, column: 7] (through reference chain: com.drm.entity.User[“girlfriends”]->java.util.ArrayList[0])
产生原因:在进行绑定的时候是采用的静态类调用方式创建内部类实例
解决方法:把内部类置为static即可;
伪代码:

@Data
public class User {

	private String userName;

	private String addr;

	private int age;

	private List<Girlfriend> girlfriends = new ArrayList<>();
	
	@Data
	public static class Girlfriend {

		private String girlName;

		private int girlAge;

		private String girlAddr;
	}
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值