mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-09 08:31:29 +00:00
61 lines
1.3 KiB
Kotlin
Vendored
61 lines
1.3 KiB
Kotlin
Vendored
// FILE: Test.java
|
|
|
|
import java.lang.String;
|
|
import java.lang.annotation.Annotation;
|
|
|
|
class Test {
|
|
|
|
public static String test1() throws NoSuchMethodException {
|
|
Annotation[] test1s = A.class.getMethod("test1").getAnnotations();
|
|
for (Annotation test : test1s) {
|
|
String name = test.toString();
|
|
if (name.contains("testAnnotation")) {
|
|
return "OK";
|
|
}
|
|
}
|
|
return "fail";
|
|
}
|
|
|
|
public static String test2() throws NoSuchMethodException {
|
|
Annotation[] test2s = B.class.getMethod("test1").getAnnotations();
|
|
for (Annotation test : test2s) {
|
|
String name = test.toString();
|
|
if (name.contains("testAnnotation")) {
|
|
return "OK";
|
|
}
|
|
}
|
|
return "fail";
|
|
}
|
|
|
|
}
|
|
|
|
// FILE: test.kt
|
|
|
|
import kotlin.jvm.JvmStatic
|
|
|
|
@Retention(AnnotationRetention.RUNTIME)
|
|
annotation class testAnnotation
|
|
|
|
class A {
|
|
|
|
companion object {
|
|
val b: String = "OK"
|
|
|
|
@JvmStatic @testAnnotation fun test1() = b
|
|
}
|
|
}
|
|
|
|
object B {
|
|
val b: String = "OK"
|
|
|
|
@JvmStatic @testAnnotation fun test1() = b
|
|
}
|
|
|
|
fun box(): String {
|
|
if (Test.test1() != "OK") return "fail 1"
|
|
|
|
if (Test.test2() != "OK") return "fail 2"
|
|
|
|
return "OK"
|
|
}
|