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