如何获取 java 对象的字段类型和值?
How can I get field types and values of java object?
也许有人可以建议我如何揭示无法访问初始 java class(用于创建对象)的 ignite-stored 对象的结构?Ignite-stored据我所知,对象只是一个 java 对象。 'structure' 我的意思是字段名称和类型。
一般用途是为 ignite 存储的对象生成 avro 模式。
解决如下:
我的最终解决方案现在如下所示:
private void binObjFieldsParsing(BinaryObject o){
Map<String, String> fieldNamesNTypes = new LinkedHashMap<String, String>();
for (String field: o.type().fieldNames()){
fieldNamesNTypes.put(field, o.type().fieldTypeName(field));
}
for (Map.Entry<String, String> fieldNameNType: fieldNamesNTypes .entrySet()){
System.out.println("Field name: " + fieldNameNType.getKey() + " Field type: " + fieldNameNType.getValue());
}
}
你应该使用 binary objects API.
简而言之:
BinaryObject val = (BinaryObject)cache.withKeepBinary().get(key);
也许有人可以建议我如何揭示无法访问初始 java class(用于创建对象)的 ignite-stored 对象的结构?Ignite-stored据我所知,对象只是一个 java 对象。 'structure' 我的意思是字段名称和类型。 一般用途是为 ignite 存储的对象生成 avro 模式。
解决如下: 我的最终解决方案现在如下所示:
private void binObjFieldsParsing(BinaryObject o){
Map<String, String> fieldNamesNTypes = new LinkedHashMap<String, String>();
for (String field: o.type().fieldNames()){
fieldNamesNTypes.put(field, o.type().fieldTypeName(field));
}
for (Map.Entry<String, String> fieldNameNType: fieldNamesNTypes .entrySet()){
System.out.println("Field name: " + fieldNameNType.getKey() + " Field type: " + fieldNameNType.getValue());
}
}
你应该使用 binary objects API.
简而言之:
BinaryObject val = (BinaryObject)cache.withKeepBinary().get(key);