// TARGET_BACKEND: JVM // WITH_STDLIB // FILE: JavaClass.java import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; public class JavaClass { @Retention(RetentionPolicy.RUNTIME) @interface Foo { int value(); } @Foo(KotlinClass.FOO_INT) public String test() throws NoSuchMethodException { return KotlinClass.FOO_STRING + JavaClass.class.getMethod("test").getAnnotation(Foo.class).value(); } } // FILE: kotlinClass.kt class KotlinClass { companion object { const val FOO_INT: Int = 10 @JvmField val FOO_STRING: String = "OK" } } fun box(): String { val test = JavaClass().test() return if (test == "OK10") "OK" else "fail : $test" }