• Reflection
  • TypeToken
  • Background: Type Erasure and Reflection
  • Introduction
  • Queries
  • resolveType
  • Invokable
  • Is the method public?
  • Is the method package private?
  • Can the method be overridden by subclasses?
  • Is the first parameter of the method annotated with @Nullable?
  • How to share the same code for both constructors and factory methods?
  • What's the return type of List.get(int) for List<String>?
  • Dynamic Proxies
  • newProxy()
  • AbstractInvocationHandler
  • ClassPath
  • Class Loading