Generically Typed Objects using Guava's TypeToken