(是我自己代码出问题了,还是可以用BeanUtils方法的)
开发过程中引用了一个第三方的jar包,返回的数据是protobuf类型,而不是常见的bean,虽然我声明了一个属性名完全一样的bean,然后使用BeanUtils.copyProperties
方法,结果完全没有复制进去。加了断点走到了内部
每一步都有值,但是就在最后这个invoke的时候进不去,百思不得其解,不知道是什么问题。
最后只能通过json进行属性复制或者最笨的方法,显式调用get/set。
说一下通过json进行属性复制的方法:
try {
String json = JsonFormat.printer().print(news.getVideoInfo());
videoInfoEntity = new Gson().fromJson(json, VideoInfoEntity.class);
}catch (Exception e) {
System.out.println("eee");
}
其中,news
是一个protobuf类的对象,VideoInfoEntity
是一个bean,通过这种方法可以将属性复制进来,亲测有效。
查了一下,发现复制不进去的关键问题竟然是再下一层逻辑中转换的时候属性类型不一样。。。真是狗血