Kotlin、Android Studio。 Text(...) 上的“重载解析歧义。所有这些函数都匹配”

问题描述 投票:0回答:1

我最近开始学习 Android Studio 和 Kotlin 中的应用程序开发,所以我完全是初学者,但学得很快。然而,我偶然发现了这个错误:“重载解析不明确。所有这些函数都匹配”。我只有一个文件 MainActivity.kt,其中定义了 2 个可组合函数 ItemOrder 和 UpperPanel。问题是当我尝试在这两个中调用 Text(...) 函数时。我不知道为什么会出现错误并在线搜索,但没有一个相关答案真正解决了我的问题。我再说一遍,我是一个初学者,所以我可能会在某个地方犯下菜鸟错误。我在下面附上错误的片段。

我还必须提到,我只导入了这个 Text 实例:“import androidx.compose.material3.Text”,所以令我更惊讶的是,我不明白冲突是如何出现的,即使我在一个文件中只有一个导入。预先感谢大家。

P.S.:如果有必要,我也可以附上代码,但我想这样可以节省空间。

android kotlin android-studio overloading ambiguity
1个回答
0
投票

很难说,因为最后......的事情,但如果我没记错的话,问题如下:

您可以以与预期参数列表不同的方式重载函数。例如,您可以有一个

Blah(text: String, text2: String)
和一个
Blah(text: String, foo: Int)
。然后调用站点呈现的参数将明确要调用哪个函数:
Blah("foo", "bar")
Blah("something", 5)
。但是,如果您没有提供足够的参数(因为大多数参数在您的情况下都是可选的)并尝试使用一个字符串参数调用该函数,则无法解决这种歧义(
Blah("bar")
)。我建议您检查这些函数的源代码并仔细阅读参数列表。找出差异并更改您的呼叫以明确要呼叫哪一个。我知道这听起来有点像“去看看并弄清楚”。 :D 参数列表会有一些不同,这是关键。

© www.soinside.com 2019 - 2024. All rights reserved.