java中动态代理有两种实现方式,一个是java本身提供的面向接口的动态代理,一个是cglib动态代理。
cglib动态代理可以动态生成字节码文件,但是我看了这个好像与我的需求不符。
我的需求是这样的:
很多orm框架可以自动根据数据库的字段生成实体bean,现在的需求是我想根据结构体的定义 动态生成javabean,也就是说任意给定一个结构体的定义,通过某种方式可以生成对等的java 实体,这个能够实现吗,有相关参考吗,各位能否指点一下,非常感谢
java中动态代理有两种实现方式,一个是java本身提供的面向接口的动态代理,一个是cglib动态代理。
cglib动态代理可以动态生成字节码文件,但是我看了这个好像与我的需求不符。
我的需求是这样的:
很多orm框架可以自动根据数据库的字段生成实体bean,现在的需求是我想根据结构体的定义 动态生成javabean,也就是说任意给定一个结构体的定义,通过某种方式可以生成对等的java 实体,这个能够实现吗,有相关参考吗,各位能否指点一下,非常感谢
让它们具有一模一样的内存布局是不现实的,保证转换过程中不丢失信息就够了。
你可以用一种中间格式,将一边的对象序列化,在另一边恢复,或者反过来。
你可以试试各种跨语言序列化的方案,比如JSON、Protobuf或者别的什么。各有优劣。
4 回答1.4k 阅读✓ 已解决
4 回答1.2k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
2 回答733 阅读✓ 已解决
2 回答1.7k 阅读
2 回答1.7k 阅读
Java有反射可以拿到字段的名称,但是C++的结构体你自己去malloc的话,是一块连续的内存,通过结构体每个字段的大小来确定指针位置。所以应该是不能实现的,因为在源码级别确实你能看到字段,但是在运行时所面对的就是一块一块的内存区域。 答主C++很差,会C和Java,如有错误望指正。
补:===
C++是有反射的,但是结构体只能用结构映射来替代。具体的楼主去研究吧,很久没接触了