rocketraman
02/20/2018, 11:09 PMinline fun <reified T : Any> T.foo(): String {
return T::class.java.name
}
interface Foo {
val foo: String
get() = foo()
}
class FooImpl: Foo {
fun test1() = foo
fun test2() = foo()
}
fun main(args: Array<String>) {
println("[${FooImpl().test1()}]") // prints [org.apache.logging.log4j.kotlin.Foo]
println("[${FooImpl().test2()}]") // prints [org.apache.logging.log4j.kotlin.FooImpl]
}