【发布时间】:2019-12-21 07:33:53
【问题描述】:
我想运行下面提到的简单示例。 eclipse生成错误说:
main class cant be found or loaded
请告诉我如何解决此错误以及它发生的原因 在下面的代码中,我尝试使用支持字段。但是,它们在代码中的使用方式并没有提供预期的输出。 请参考输出部分。
如何显示支持字段的输出
代码:
fun main(args: Array<String>) {
println("Hello, World!")
val p1 = Person_1("jack", 21);
p1.lastName = "stephan"
p1.month = "may"
println("lastName is ${p1.getLastName}")
println("month is ${p1.getMonth}")
val p2 = Person_1("jack", 21);
p2.lastName = "knauth"
p2.month = "june"
println(p2.getLastName)
println(p2.getMonth)
class Person_1 (val name: String, val age : Int) {
//backing field 1
var lastName : String? = null
set(value) {
if (value?.length == 0) throw IllegalArgumentException("negative values are not allowed")
field = value
}
val getLastName
get() = {
lastName
}
//backing field 2
var month : String? = null
set(value) {
field = value
}
val getMonth
get() = {
month
}
}
输出:
Hello, World!
lastName is () -> kotlin.String?
month is () -> kotlin.String?
() -> kotlin.String?
() -> kotlin.String?
【问题讨论】:
-
使用
=或{...},但不能同时使用。如果您没有=括号声明函数范围,但= {...}括号现在声明一个 lambda 函数。这就是您的字段返回函数的原因。
标签: kotlin backing-field