我可以将类添加为Kotlin中另一类的扩展名



例如,我知道我可以在类似的类字符串中添加扩展名:

val String.isValidEmail : Boolean
    get() {
        val expression = "^[\w\.-]+@([\w\-]+\.)+[A-Z]{2,4}$"
        val pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);
        val matcher = pattern.matcher(this)
        return matcher.matches()
    }

现在,我想在另一个类中添加一个类作为扩展名,我认为实现将是这样的:

class Networking {
    ....
}
class Networking.Email {
    ....
}
// MainActivity.kt
val email = Networking.Email()

但这给了我" networking.email"的错误。对于"网络"部分:重新支列:网络。对于"电子邮件"部分:期望最高声明。这实际上在Kotlin中可以吗?

no,Kotlin中没有扩展类。请参阅此处:

kotlin,类似于c#和gosu,提供了扩展类的能力 具有新功能,而无需从类中继承或使用 任何类型的设计模式,例如装饰器。这是通过特惠来完成的 声明称为扩展。Kotlin支持扩展功能 和扩展属性。

最新更新