(Updated the example in the wiki, thanks!)

On Tue Nov 18 2014 at 8:30:05 AM Sam Berlin <[email protected]> wrote:

> Yup, that'll work for basic (non-generic) types.  For potentially generic
> types,you'd want to iterate using something similar to this
> <https://github.com/google/guice/blob/master/extensions/testlib/src/com/google/inject/testing/fieldbinder/BoundFieldModule.java#L363>,
> and then later retrieve the types through the TypeLiteral (using
> TypeLiteral.getFieldType) too.  Otherwise you'll lose the generics info
> on the fields.
>
> sam
>
>
>
> On Tue Nov 18 2014 at 7:56:06 AM Jonas <[email protected]> wrote:
>
>> Hello,
>>
>> I've been using the CustomInjections example to do Logger injection as
>> described on https://github.com/google/guice/wiki/CustomInjections
>>
>> However when using abstract classes / super classes the fields are not
>> visible when typeLiteral.getRawType().getDeclaredFields() is called.
>>
>> This bit me and I changed the code to the following:
>>
>> Class<?> clazz = typeLiteral.getRawType();
>> while (clazz != null) {
>>     for (Field field : clazz.getDeclaredFields()) {
>>         if (field.getType() == Logger.class &&
>>             field.isAnnotationPresent(InjectLogger.class)) {
>>             encounter.register(new Log4JMembersInjector<T>(field));
>>         }
>>     }
>>     clazz = clazz.getSuperclass();
>> }
>>
>> What do you think about updating the example with the code above? Is this
>> the correct way of doing it if you have super classes or is it bad
>> performance wise?
>>
>> Kind regards
>> Jonas
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "google-guice" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at http://groups.google.com/group/google-guice.
>> To view this discussion on the web visit https://groups.google.com/d/
>> msgid/google-guice/22d471fc-a59b-45cd-b519-741eb72611d8%
>> 40googlegroups.com
>> <https://groups.google.com/d/msgid/google-guice/22d471fc-a59b-45cd-b519-741eb72611d8%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"google-guice" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-guice.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-guice/CAJEBNUew%3DcvkaY-Q28wwa4kEGJ77esy4DHOGTrYn70Md8U1a4w%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to