pavel
10/31/2018, 10:28 PMBernhard
10/31/2018, 10:29 PMBernhard
10/31/2018, 10:29 PMpavel
10/31/2018, 10:29 PMpavel
10/31/2018, 10:29 PMkenkyee
10/31/2018, 10:30 PMHamza
11/01/2018, 12:43 AMuser
11/01/2018, 6:45 AMphldavies
11/01/2018, 10:44 AMcomponent1(): Double
and component2(): Double
. I can declare my own interface and have my data classes extend it but it feels like something that should be implicit.iex
11/01/2018, 12:49 PMvar bar: String by Delegates.observable("bar") { property, old, new ->
println("$property has changed from $old to $new")
}
iex
11/01/2018, 12:49 PMString?
instead of String
it doesn't. How do I fix it?iex
11/01/2018, 12:54 PMError:(15, 24) Property delegate must have a 'setValue(Foo, KProperty<*>, String?)' method. None of the following functions is suitable:
public abstract operator fun setValue(thisRef: Any?, property: KProperty<*>, value: String): Unit defined in kotlin.properties.ReadWriteProperty`
Dias
11/01/2018, 12:54 PMvar bar: String? by Delegates.observable("bar") { property, old: String?, new: String? ->
println("$property has changed from $old to $new")
}
iex
11/01/2018, 12:55 PMiex
11/01/2018, 12:55 PMnew
🙈iex
11/01/2018, 12:55 PMilya.gorbunov
11/01/2018, 1:13 PMvar bar by Delegates.observable<String?>("bar") { property, old, new ->
println("${property.name} has changed from $old to $new")
}
That's a known problem in type inference https://youtrack.jetbrains.com/issue/KT-10930iex
11/01/2018, 1:13 PMBernhard
11/01/2018, 1:34 PMBernhard
11/01/2018, 1:34 PMagrosner
11/01/2018, 1:34 PMBernhard
11/01/2018, 1:35 PMBernhard
11/01/2018, 1:35 PMagrosner
11/01/2018, 1:36 PMString
., so when you use it you dont have to do object.value
or object.get()
you can just use object
Bernhard
11/01/2018, 1:37 PMagrosner
11/01/2018, 1:37 PMBernhard
11/01/2018, 1:38 PMagrosner
11/01/2018, 1:39 PMval age = calculateAge()
and then you realize, hey i cant do this on class creation because now calculateAge()
now depends on another property set later. but you dont want to change the API or have to rewrite all usages of age
to use age.get()
or something.agrosner
11/01/2018, 1:40 PMval age by lazy { calculateAge(someOtherVar) }
and then thats itBernhard
11/01/2018, 1:40 PM