Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.lang.reflect.Method
- import java.lang.reflect.Proxy
- interface SomeInterface {
- fun a()
- fun b(str: String): String
- }
- fun main(args: Array<String>) {
- val clazz = SomeInterface::class.java
- val proxy: SomeInterface = Proxy.newProxyInstance(
- clazz.classLoader,
- arrayOf(clazz)
- ) { proxy: Any, method: Method, args: Array<Any>? ->
- print("Called method ${method.name} with arguments ${args?.toList()}")
- "Some Return"
- } as SomeInterface
- proxy.a() // Prints: Called method a with arguments null
- val ret = proxy.b("BBB") // Prints: Called method b with arguments [BBB]
- print(ret) // Prints: Some Return
- }
Add Comment
Please, Sign In to add comment