预期 3 个参数,但找到 1 个

Posted

技术标签:

【中文标题】预期 3 个参数,但找到 1 个【英文标题】:Expected 3 arguments but found 1 【发布时间】:2021-04-18 22:56:21 【问题描述】:

我是安卓编程新手。我正在尝试创建商店详细信息活动。我目前正在使用用户日志记录显示 Cloud Firestore 数据/添加到 Fire Store 数据功能中。作为下一部分,我希望能够从应用程序更新云火石中的数据。现在我正试图将单个数据提取到单个活动中。我遇到了这个错误,我不知道如何解决它。 谢谢 我的列表活动类setUpRecyclerView函数;

 Query query = todoRef.whereEqualTo("email", mAuth.getCurrentUser().getEmail());

        FirestoreRecyclerOptions<ToDoItem> options = new FirestoreRecyclerOptions.Builder<ToDoItem>().setQuery(query,ToDoItem.class).build();


       adapter = new ToDoAdapter(options);

我在这个函数中得到这个错误:

  adapter = new ToDoAdapter(options);
                 ^
  required: FirestoreRecyclerOptions<ToDoItem>,Context,List<ToDoItem>
  found: FirestoreRecyclerOptions<ToDoItem>
  reason: actual and formal argument lists differ in length

将此代码添加到我的适配器类 ProductsAdaptor 函数时出现此错误

public ToDoAdapter(@NonNull FirestoreRecyclerOptions<ToDoItem> options
            ,Context mCtx, List<ToDoItem> productList) 
        super(options);
        this.mCtx = mCtx;
        this.productList = productList;
    

当我从这个函数应用程序中取出List&lt;Product&gt; productList 代码时工作正常。 我该如何解决这个问题?

【问题讨论】:

您是否尝试过将构造函数与错误要求您提供的参数一起使用?如果您收到此错误,ToDoAdapter 一定不能有一个带有一个 FirestoreRecyclerOptions&lt;ToDoItem&gt; 参数的构造函数。 不,我没有说过我是 andorid 编程的新手。你能把代码贴在这里吗? 另外我更新了我的代码我发布了错误的函数 Firebase 实时数据库和 Cloud Firestore 是两个独立的数据库。请仅使用相关标签标记您的问题,不要同时使用两者。 请向我们展示您的ToDoAdapter 的内容。也请回复@AlexMamo 【参考方案1】:

要使构造函数正常工作,它需要提供正确类型和数量的参数。此构造函数接受 3 个参数。你只提供了一个。创建它所期望的另外两个(Context 对象和List&lt;TodoItem&gt; 对象)并将它们添加到您在构造ToDoAdapter 时提供的参数中。更具体地说,在代码中:

adapter = new ToDoAdapter(options, missingArgument1GoesHere, missingArgument2GoesHere);

【讨论】:

缺少的参数是 Context mCtx List productList 当我这样写它们时它不起作用我怎样才能把它们放在那里? 退后一步,了解一下 java 中的构造函数是什么以及如何使用它们可能会有所帮助。这不是一个特定于 android 的问题,而是一个基本的编程概念。了解构造函数会告诉你这里发生了什么。

以上是关于预期 3 个参数,但找到 1 个的主要内容,如果未能解决你的问题,请参考以下文章

颤振`预期有 6 个位置参数,但找到了 1 个。` 尝试添加缺少的参数

预期 1 个位置参数,但找到 0 个 (Flutter)

TypeScript 2.6.1错误TS2554:预期2-3个参数,但得到1

预期 3-4 个参数,但得到 2.ts FirebaseX Ionic 本机插件

预期 2 个参数,但得到 1 个。 [重复]

Angular @ViewChild() 错误:预期 2 个参数,但得到 1 个