// FILE: A.java public @interface A { String value(); int arg(); } // FILE: b.kt @A(value = "a", arg = 1) class MyClass fun foo(ann: A) { ann.value() ann.arg() ann.equals(ann) ann.toString() ann.hashCode() MyClass::class.java.getAnnotation(A::class.java).value() MyClass::class.java.getAnnotation(A::class.java).arg() } fun A.bar() { value() arg() this.value() this.arg() }