Oracle coherence 一致性:优雅地导航具有潜在空元素的POF路径

Oracle coherence 一致性:优雅地导航具有潜在空元素的POF路径,oracle-coherence,Oracle Coherence,在POF序列化的.NET对象中,我有一个包含类B的类A,类B有一个属性X,我想提取它并在过滤器中使用它 我可以使用SimplePofPath在POF流中从a导航到B并抓取X。这很好,除非a.B==null 当A没有预期的B实例时,SimplePofPath将失败,并显示消息 无法在上调用getChild方法 SimplePofValue实例 与此相反,我想要一个IPofNavigator,它可以做一些更优雅的事情,而不是在无法遍历其路径时抛出异常,因为我在字段中序列化了null。例如,这可能是返

在POF序列化的.NET对象中,我有一个包含类B的类A,类B有一个属性X,我想提取它并在过滤器中使用它

我可以使用SimplePofPath在POF流中从a导航到B并抓取X。这很好,除非a.B==null

当A没有预期的B实例时,SimplePofPath将失败,并显示消息

无法在上调用getChild方法 SimplePofValue实例

与此相反,我想要一个IPofNavigator,它可以做一些更优雅的事情,而不是在无法遍历其路径时抛出异常,因为我在字段中序列化了null。例如,这可能是返回用户提供的回退值


是否存在这样的实现?如果不是,我将如何开始自己扩展AbstractPofPath?我已经了解了处理包含的集合的自定义导航器,但还不知道如何开始实现导航。

我可以通过扩展AbstractPofPath并实现递归navigatePofValue int方法来实现这一点,就像链接的方法一样。我还在C中对其进行了存根,并在.NET客户端和集群配置文件中提供了匹配的用户类型配置

在递归调用之前,该方法检查其参数的typeID是否等于PofConstants.V_REFERENCE_NULL,如果是,则只返回其参数而不是递归

过去几分钟的测试表明,这种方法保持了过滤器和提取器对象可以接受的行为

进一步思考: 如果我有我的.NET类的Java等价物,我可以使用ChainedExtractor。然而,集群想要知道如何反序列化提取器链中的所有内容