如何在Rethinkdb的java驱动程序中将get_all()的光标转换为地图或列表地图?



我在字符串(json)或Map中从get_all(数组)转换值时遇到问题。

 RqlCursor cursor = r.db("test").table("x").get_all(arraylist)

当我尝试像一样提取时

for(RqlObject o : cursor) {
        if (o instanceof java.util.List<?>) {
            List<Object> list = o.getList();
          }else if (o instanceof ListIterator<?>) {
            List<Object> list = o.getList();
            array.add(list);
          }else {
              java.util.Map<String, Object> map = o.getMap();
            }
}

除了Map之外,没有其他实例捕捉到上述条件并生成错误java.util.ArrayList cannot be cast to java.util.Map如何在列表映射的映射或数组中,甚至在json格式的字符串中获取此对象。

我自己从另一个来源得到了Answer。首先,我们必须使用.as方法来检查类型。这是完整的代码

for(RqlObject c : cursor) {
    Object o = c.as();     
    if (o instanceof java.util.List<?>) {
         List<Object> list = o.getList();
     }else if (o instanceof ListIterator<?>) {
         List<Object> list = o.getList();
     }else {
         java.util.Map<String, Object> map = o.getMap();
     }
}

最新更新