gpt4 book ai didi

Kotlin 编译器 : Data binding error, 找不到方法

转载 作者:行者123 更新时间:2023-12-04 16:42:08 26 4
gpt4 key购买 nike

Java 迁移至Kotlin我尝试将静态函数与 Data Binding 一起使用:

  <data>
<import type="com.package.domain.tools.helper.StringValidator"/>
...
</data>

然后我调用函数 hideNumber :
 <com.hastee.pay.ui.view.Text
...
android:text='@{StringValidator.hideNumber(account.number)}'
app:layout_constraintRight_toRightOf="@+id/number"
app:layout_constraintTop_toBottomOf="@+id/number" />

在此处使用数据绑定(bind)会导致错误:
   [kapt] An exception occurred: 
android.databinding.tool.util.LoggedErrorException: Found data binding
errors.
****/ data binding error ****msg:cannot find method
hideNumber(java.lang.String) in class
com.package.domain.tools.helper.StringValidator....

这是这个对象:
 object StringValidator {
...
fun hideNumber(number: String): String {
return "****" + number.substring(number.length - 4)
}
}

如何使用 Kotlin 来实现此功能和 Data Binding ?

最佳答案

数据绑定(bind)编译器正在寻找静态方法。

由于一个名为 object仅此不足以使该对象内的所有方法static ,你需要一个额外的@JvmStatic您的 hideNumber 上的注释-方法:

@JvmStatic
fun hideNumber(number: String): String {
return "****" + number.substring(number.length - 4)
}

另见: https://kotlinlang.org/docs/reference/java-to-kotlin-interop.html#static-methods

关于Kotlin 编译器 : Data binding error, 找不到方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50508558/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com