簡體   English   中英

意外的標記使用';' 在同一行上分隔表達式 - 在 Kotlin 中創建 object 時出錯

[英]Unexpected tokens use ';' to separate expressions on the same line - error while creating an object in Kotlin

我是kotlin的新手。 我正在研究kotlin中使用的一些設計模式。 我遇到了抽象工廠設計,並且在為 class 創建 object 時不斷收到此錯誤。 我嘗試了堆棧溢出的其他解決方案,例如缺少花括號,但徒勞無功。 我附上了整個代碼來解決。 有人可以幫我解決這個問題嗎? 提前致謝。

控制台中的錯誤:

Unexpected tokens (use ';' to separate expressions on the same line)

main.kt 代碼:

object AAbstractFactoryDesignPattern{

internal interface IAndroid{
    fun GetModelDetails(): String
}

internal interface IiOS{
    fun GetModelDetails(): String
}

internal interface IMobile{
    fun GetAndroidPhone() : IAndroid
    fun GetiOsPhone() : IiOS
}

internal class SamsungGalaxy : IAndroid{
    override fun GetModelDetails(): String {
        return "Model: Samsung Galaxy - RAM: 2GB - Camera: 13MP"
    }
}

internal class IphoneFour: IiOS{
    override fun GetModelDetails(): String {
        return "Model: Iphone 4 - RAM: 1GB - Camera: 12MP"
    }
}

internal class Samsung : IMobile{
    override fun GetAndroidPhone(): IAndroid {
        return  SamsungGalaxy()
    }

    override fun GetiOsPhone(): IiOS {
        return IphoneFour()
    }
}


internal class MobileClient(factory: IMobile){
    var androidPhone: IAndroid
    var iOSPhone: IiOS
    fun GetAndroidPhoneDetails(): String{
        return  androidPhone.GetModelDetails()
    }
    fun GetIOSPhoneDetails(): String{
        return  iOSPhone.GetModelDetails()
    }
    init {
        androidPhone = factory.GetAndroidPhone()
        iOSPhone = factory.GetiOsPhone()
    }

}


@JvmStatic
fun main(args : Array<String>){
    val samsungMobilePhone: Samsung() //error line
    val samsungClient: MobileClient(samsungMobilePhone) //error line
    println(samsungClient.GetAndroidPhoneDetails())
    println(samsungClient.GetIOSPhoneDetails())
}

}

聲明變量時,冒號 (:) 用於明確指定變量的類型。 看起來錯誤行上的冒號應該是等於(=)。

嘗試將您的“錯誤行”更改為:

val samsungMobilePhone = Samsung() //error line
val samsungClient = MobileClient(samsungMobilePhone) //error line

或者,如果您想明確說明類型:

val samsungMobilePhone : IMobile = Samsung() //error line
val samsungClient : MobileClient = MobileClient(samsungMobilePhone) //error lines

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM