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

回调问题:无法从具有无效结果类型[重复]的方法返回值

松建本
2023-03-14

我想返回列表

public static List<Product> getProducts(@NonNull Context context){

    ProductDataSource.getInstance(context).readProducts(new IProductDataSource.IReadProductsCallback() {
        @Override
        public void onSuccess(List<Product> result) {
            return result; // error in here
        }

        @Override
        public void onFailure() {
            return null;  // error in here
        }
    });

}

共有1个答案

凌嘉志
2023-03-14
匿名用户

您需要为调用方法提供某种回调。例如:

interface Callback {
  void onProductsRetrieved(List<Product> products)
  void onProductsRetrieveError()
}

public static void getProducts(@NonNull Context context, Callback callback) {
  ProductDataSource
    .getInstance(context)
    .readProducts(new IProductDataSource.IReadProductsCallback() {
      @Override
      public void onSuccess(List<Product> result) {
        callback.onProductsRetrieved(result)
      }

      @Override
      public void onFailure() {
        callback.onProductsRetrieveError()
      }
    });
}

请注意,getProducts的返回类型已更改为,并添加了一个回调作为参数。

或者,您可以传入IPProductDataSource。IReadProductsCallback直接:

public static void getProducts(@NonNull Context context, IProductDataSource.IReadProductsCallback callback) {
  ProductDataSource.getInstance(context).readProducts(callback);
}

 类似资料:
  • 我正在实现我自己的通用链表类,它有一个名为的实例方法,它可以制作链表的数组副本并返回它。但是,每当我尝试在实例上调用该方法时,我都会收到错误消息“SLList.this不能从静态上下文中引用”。我搜索了一下,有些人说这是因为我没有在实例上调用该方法,但我确实调用了。 下面是该类: 它有一些方法,比如<code>addLast、addFirst</code>它们没有问题。 是我不断收到错误消息的行,

  • 问题内容: 我正在在线关注CS106A的讲座。我正在阅读第12讲中的代码,但这给了我Eclipse错误。 这是我的代码。似乎错误是由于我的方法中的单词void 。我尝试删除main方法,但是没有它,Java当然无法运行。 我是一名新手,没有人解释这东西的真正含义,但有人告诉我,请不要理会它并使用它。如果有人也可以向我解释,我将不胜感激。 这个错误也出现在“ toLower”方法上。不知道这意味着什

  • 问题内容: 由于在Java中使用了泛型,我最终不得不实现一个具有as返回类型的函数: 并且编译器要求我返回 一些东西 。现在我只是返回,但是我想知道这是否是好的编码实践… 我问的是 V oid,而不是 V oid。类, 而不是 保留关键字。 我也试过,,,,没有回报可言,但都不会在所有的工作。(出于或多或少明显的原因) 那么,如果函数的返回类型为,我应该返回什么呢? 该课程的一般用途是什么? 问题

  • 我正在实现我自己的泛型链表类,它有一个名为的实例方法,该方法生成链表的数组副本并返回它。然而,每当我试图在实例上调用该方法时,我总是得到错误消息“sllist.this cannot be referenced from a static context”。我搜索了一下,有些人说这是因为我没有在实例上调用那个方法,但我确实调用了。 下面是类: 它有一些方法,如,它们都没有问题。 是我不断收到错误消

  • 为什么下面要抛出NullPointerException?: 提前致谢

  • 我正在努力理解我的代码在这个Leetcode问题上出了什么问题。 问题:给定一个字符串,确定它是否是回文,只考虑字母数字字符,忽略大小写。 现在,我通过了108/476个案例,我没有通过这个测试:“一个人,一个计划,一条运河:巴拿马”。 这是我的代码,请帮我识别问题!