有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何从谷歌扳手的变异中获得合适的数据类型值?

  1. 在下面的代码中,我可以得到适当的数据类型值
Map<String, Value> mutationMap = mutation.asMap();
Value locationValue = mutationMap.getOrDefault("location", null);
Long location = locationValue .getInt64();
  1. 如何让它在一个循环中
new Gson().toJson(mutation.asMap().entrySet().stream().collect(Collectors.toMap(Entry::getKey,e->e.getValue().toString())));

在上面,我将所有内容转换为string。如果该值的数据类型为int,如何获取该值


共 (1) 个答案

  1. # 1 楼答案

    值在谷歌云扳手代码中定义为一个抽象类 Value.java
    它由单个类型覆盖
    所以,使用

    if (value instanceOf INT64) {
        return value.getInt64();
    }
    

    这才是正确的选择
    我理解您对迭代所有数据类型的担忧
    您可以这样做,或者创建一个col name映射来键入,并使用它来更好地查找

    我还建议使用Jackson ObjectMapper将POJO转换为JSON,这样可以节省一些迭代
    它不像“知道”你将要使用什么那样优化,但它会解决你的问题