当前位置: 首页 > 知识库问答 >
问题:

列表转换getter方法未获取对象属性的值

郎经纶
2023-03-14

我的查询对象是

     Query query = dbFirestore.collection("collectionName").whereEqualTo("column1", "value").whereEqualTo("column2", "value");                    
     ApiFuture<QuerySnapshot> apiFutureResults = query.get();
     System.out.println("Document size..." + piFutureResults.get().getDocuments().size()); // 4 prints value actual result object size correctly.

但是

<代码>列表

将结果列表转换为classNameList。当我迭代单个值时,我的实体值在ClassName属性中为空。调用getter方法时不显示值。我的pojo看起来如下所示,当我打印pojo的值为空时,我的foreach正好迭代四次。

Public class ClassName { //listofObjects + getter, setter Method. } // Any annotation to be added ?

我的查询对象来自com.google.cloud.firestore包。和ApiFuture来自com.google.api.core.ApiFuture包。使用Firebase admin 7.0.1依赖项。

我的问题是,当它正确地打印大小,甚至正确地使用foreach进行迭代时,当我试图从对象中获取值时,它会变为空或空白,为什么?当结果集已经可用时,这种典型的方法有什么错?

注意:不在Android平台上使用。用作Java网络应用类产品。

共有1个答案

华阳秋
2023-03-14

对于我来说,下面的Java方法很有效,toObjects()将结果集列表转换为arraylist的集合

    ApiFuture<QuerySnapshot> apiFutureResults = query.get();
    List<ClassName> classNameList = 
    apiFutureResults.get().toObjects(ClassName.class);
    for (ClassName object : classNameList) {
     // Object.getPropertyName();
    }
 类似资料:
  • 问题内容: 当存在时,是否有可能获得全部列表?是否为此准备了电话,还是我必须编写一个foreach循环,如: 问题答案: Java 8及更高版本: 如果需要确保得到结果,则必须将最后一行更改为: Java 7及以下版本: Java 8之前的标准集合API不支持这种转换。您必须编写一个循环(或将其包装在您自己的“地图”函数中),除非您使用一些更高级的集合API /扩展。 (您的Java代码段中的行正

  • 这不只是为每个属性做一堆if/else if用例吗?

  • 问题内容: 我想使用Java 8技巧在一行中执行以下操作。 给定此对象定义: 和a ,我想得到a ,它是第一个列表中所有s对象的列表- 顺序相同。 我可以使用Java中的循环来做到这一点,但我相信Java8中应该有一个单行lambda可以做到这一点。我无法在线找到解决方案。也许我没有使用正确的搜索词。 有人可以为这种转换建议一个lambda或另一种线吗? 问题答案: 这应该可以解决问题: 也就是说

  • 我可以在Java中使用循环来实现这一点,但我认为在Java8中应该有一个一行程序lambda来实现这一点。我无法在网上找到解决方案。也许我没有使用正确的搜索词。 有人能为这个转换提出一个lambda或另一个一行程序吗?

  • 问题内容: 这个问题很简单,但是由于我是python的新手,所以我从php过来了,因此遇到了一些错误。 我有以下简单的课程: 在PHP中,我可以执行以下操作: 我该如何在python中做到这一点? 问题答案: 要访问对象的字段或方法,请使用dot : 如果将在运行时定义字段名称,请使用内置函数:

  • 问题内容: 如果我有这样的JSON对象: 属性的名称(这里)每次都在变化,我怎么能仅仅通过JS 获得子属性?目前我有,但是现在我怎么能得到它的孩子呢? 问题答案: 如果它始终是的第一个属性,则可以执行以下操作: