为了账号安全,请及时绑定邮箱和手机立即绑定

c++与java: 如何实现根据结构体定义动态构造java类

c++与java: 如何实现根据结构体定义动态构造java类

牛魔王的故事 2019-05-25 14:23:03
java中动态代理有两种实现方式,一个是java本身提供的面向接口的动态代理,一个是cglib动态代理。cglib动态代理可以动态生成字节码文件,但是我看了这个好像与我的需求不符。我的需求是这样的:很多orm框架可以自动根据数据库的字段生成实体bean,现在的需求是我想根据结构体的定义动态生成javabean,也就是说任意给定一个结构体的定义,通过某种方式可以生成对等的java实体,这个能够实现吗,有相关参考吗,各位能否指点一下,非常感谢
查看完整描述

2 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

Java有反射可以拿到字段的名称,但是C++的结构体你自己去malloc的话,是一块连续的内存,通过结构体每个字段的大小来确定指针位置。所以应该是不能实现的,因为在源码级别确实你能看到字段,但是在运行时所面对的就是一块一块的内存区域。答主C++很差,会C和Java,如有错误望指正。
补:===C++是有反射的,但是结构体只能用结构映射来替代。具体的楼主去研究吧,很久没接触了
                            
查看完整回答
反对 回复 2019-05-25
?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

让它们具有一模一样的内存布局是不现实的,保证转换过程中不丢失信息就够了。
你可以用一种中间格式,将一边的对象序列化,在另一边恢复,或者反过来。
你可以试试各种跨语言序列化的方案,比如JSON、Protobuf或者别的什么。各有优劣。
                            
查看完整回答
反对 回复 2019-05-25
  • 2 回答
  • 0 关注
  • 398 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信