Guest User

Untitled

a guest
Dec 14th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.67 KB | None | 0 0
  1. import java.lang.reflect.Method
  2. import java.lang.reflect.Proxy
  3.  
  4. interface SomeInterface {
  5. fun a()
  6. fun b(str: String): String
  7. }
  8.  
  9. fun main(args: Array<String>) {
  10. val clazz = SomeInterface::class.java
  11. val proxy: SomeInterface = Proxy.newProxyInstance(
  12. clazz.classLoader,
  13. arrayOf(clazz)
  14. ) { proxy: Any, method: Method, args: Array<Any>? ->
  15. print("Called method ${method.name} with arguments ${args?.toList()}")
  16. "Some Return"
  17. } as SomeInterface
  18.  
  19.  
  20. proxy.a() // Prints: Called method a with arguments null
  21. val ret = proxy.b("BBB") // Prints: Called method b with arguments [BBB]
  22. print(ret) // Prints: Some Return
  23. }
Add Comment
Please, Sign In to add comment