我想将一个实例从给定的 Java 类“展平”/转换为另一个仅包含原始类型的实例。
对象中还不是基本类型的每个字段也必须递归展平,以便生成的对象包含原始对象的展平视图,仅具有基本类型。
例如,给定以下类:
class Element {
int id_;
Position position_;
}
class Position {
int x_;
int y_;
}
生成的实例将是以下类型:
class FlattenedElement {
int id_;
int x_;
int y_;
}
我会期待这样的行为:
Element e = new Person ( 42, new Position(0, 0) );
FlattenedElement fe = e.flatten();
是否有任何工具/库能够做到这一点?
还是我需要使用我采用的反射 API 编写自己的扁平化器?
-- 编辑以下大多数评论 --
我更改了示例以避免与String
and混淆byte
(我不必处理字符串)。
我需要在结果转换中保留数据的语义。输出原始类型数据将直接参与使用 OpenCL 的并行计算,OpenCL 只理解原始数据类型。
换句话说,我需要打破封装,直接操作嵌入在类层次结构中的原始数据类型。