直接总结结论:
类继承于map或者list或者set后,在其他对于这个类的操作时需要特别注意,比如,使用fastjson等工具类进行转换成json时将不会转换map、list、set之外的属性。举例,A类继承list后,又在A类中添加了一个name属性,如果将A类转换成json将不会包含A类的属性,就是json中不包含name属性,只会调用list的中的比如迭代器进行遍历list的方式查询list中的数据。如果A类是自己set属性后自己get属性,那么没有影响。
扩展:将A类返回给jsp后使用jstl标签遍历也是遍历不到name属性的。
聚合优于继承,所以尽量将list、map、set作为类的属性而不要去继承。
扩展2、在使用feign进行远程调用时会自动进行json转换,所以远程调用收不到。
继承hashmap在类中添加新属性json转换后没有,debug也看不到
最新推荐文章于 2024-06-16 20:00:48 发布
当类继承自map、list或set时,需要注意在转换为JSON或其他操作时,额外添加的属性可能不会被处理。例如,A类继承list并添加name属性,转换为JSON时,name不会出现,只包含list内容。同样,使用jstl标签遍历也会忽略此类自定义属性。因此,推荐使用聚合而非继承这些集合,以避免此类问题。在远程调用如Feign中,此问题也会导致数据丢失。
摘要由CSDN通过智能技术生成