serj
01/26/2017, 3:02 PMvar
for delegation only the first initial value is used.
class DelegateTest {
@Test fun `Swapping delegates`() {
val dc = DelegatingCallable(EmptyCallable)
assertThat(dc.call()).isEqualTo("")
dc.c = Callable<String> { "obj" }
assertThat(dc.call()).isEqualTo("obj")
}
}
class DelegatingCallable(var c: Callable<String>) : Callable<String> by c
object EmptyCallable : Callable<String> {
override fun call() = ""
}