gpt4 book ai didi

android - 为什么扩展功能在另一个模块中不可见?

转载 作者:行者123 更新时间:2023-12-02 13:12:05 25 4
gpt4 key购买 nike

我的 Android 项目有两个模块:

app
common

在 settings.gradle 中:
rootProject.name='My project'
include ':app'
include ':common'

在我的 build.gradle 中:
implementation project(':common')

在通用包中,我有 StringUtil.kt 和下一个扩展功能:
fun String.isEmailValid(): Boolean {
return !TextUtils.isEmpty(this) && android.util.Patterns.EMAIL_ADDRESS.matcher(this).matches()
}

这个类我可以使用这样的扩展功能:
val str = ""
str.isEmailValid()

但是在 app我有课的模块
class RegistrationViewModel(application: Application) : AndroidViewModel(application) {

fun doClickRegistration(email: String?, password: String?, retypePassword: String?) {
val str = ""
str.isEmailValid()
}
}

但现在我得到编译错误:

Unresolved reference: isEmailValid

最佳答案

If you do not specify any visibility modifier, public is used by default, which means that your declarations will be visible everywhere; (Source)



由于您没有向 isEmailValid 添加任何可见性修饰符视为 public .

请注意,必须导入扩展功能。
import com.your.package.path.isEmailValid

关于android - 为什么扩展功能在另一个模块中不可见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59874872/

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