``` inline fun <reified T : Any> T.foo(): St...
# announcements
r
Copy code
inline 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]
}