I Want My Type Information (Back)

Tagged:  

As Neal Gafter explained a while ago, there is a backdoor in Java's generic type erasure:

getClass().getGenericSuperclass()

Google Guice makes use of this backdoor to enable the construction of a generic type literal (or Super Type Token): its TypeLiteral class. Now (the soon to be released) Guice 2.0 goes a step further: it can inject a TypeLiteral into your class, thereby reifying your generic types (well, sort of). All the details of the changes to com.google.inject.InjectorImpl are here.

As Neal Gafter also explained, java.lang.reflect.Type really should be retrofitted. Until then, Guice offers you a little help.

[...] Google Guice makes use of this backdoor to enable the construction of a generic type literal (or Super Type Token): its TypeLiteral class. Now (the soon to be released) Guice 2.0 goes a step further: it can inject a TypeLiteral into … Read more [...]

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <pre> <div> <blockquote> <object> <embed> <img> <param>
  • Lines and paragraphs break automatically.
  • Web page addresses and e-mail addresses turn into links automatically.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Copy the characters (respecting upper/lower case) from the image.