意外的标记使用";"分隔同一行上的表达式 - 在 Kotlin 中创建对象时出错



我是kotlin的新手。我正在研究kotlin中使用的一些设计模式。我遇到了抽象工厂设计,并且在为类创建对象时不断出现此错误。我尝试了其他关于堆栈溢出的解决方案,比如缺少大括号,但都是徒劳的。我已经附上了要解决的整个代码。有人能帮我解决这个问题吗?提前谢谢。

控制台中的错误:

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

最新更新