mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-08 15:53:19 +00:00
Additional tests on reflection calls
This commit is contained in:
11
compiler/testData/codegen/boxWithJava/reflection/callPrivateJavaMethod/J.java
vendored
Normal file
11
compiler/testData/codegen/boxWithJava/reflection/callPrivateJavaMethod/J.java
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
public class J {
|
||||
private final String result;
|
||||
|
||||
private J(String result) {
|
||||
this.result = result;
|
||||
}
|
||||
|
||||
private String getResult() {
|
||||
return result;
|
||||
}
|
||||
}
|
||||
20
compiler/testData/codegen/boxWithJava/reflection/callPrivateJavaMethod/K.kt
vendored
Normal file
20
compiler/testData/codegen/boxWithJava/reflection/callPrivateJavaMethod/K.kt
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
import kotlin.reflect.*
|
||||
import kotlin.reflect.jvm.*
|
||||
import kotlin.test.*
|
||||
|
||||
fun box(): String {
|
||||
val c = J::class.constructors.single()
|
||||
assertFalse(c.isAccessible)
|
||||
failsWith(javaClass<IllegalCallableAccessException>()) { c.call("") }
|
||||
|
||||
c.isAccessible = true
|
||||
assertTrue(c.isAccessible)
|
||||
val j = c.call("OK")
|
||||
|
||||
val m = J::class.members.single { it.name == "getResult" }
|
||||
assertFalse(m.isAccessible)
|
||||
failsWith(javaClass<IllegalCallableAccessException>()) { m.call(j)!! }
|
||||
|
||||
m.isAccessible = true
|
||||
return m.call(j) as String
|
||||
}
|
||||
Reference in New Issue
Block a user