The Lazy example isn't related, I was just talking about the current 
process of resolving type parameters in just-in-time bindings.  The current 
behaviour will give Lazy a Provider<String> for that example. 

On Friday, 11 April 2014 09:03:06 UTC-4, Sam Berlin wrote:
>
> I love the annotation idea -- that would be a much simpler way using 
> annotations with parameters, without requiring the user to make an 
> implementation of it.
>
> The "Lazy" one doesn't really follow from it, though.  "T" in Provider<T> 
> would still be lost by erasure.  You'd need to subclass Lazy in order to 
> store the information in the type system. 
>
>  sam
>
>
>
> On Thu, Apr 10, 2014 at 10:19 PM, Tavian Barnes 
> <[email protected]<javascript:>
> > wrote:
>
>> Something cool just occurred to me, it'd be nice to be able to write new 
>> Key<@Named("foo") String>(){}. 
>>
>
>> Anyway I think type annotations need a little more thought.  If 
>> Provider<@Named("foo") 
>> String> works, why not this:
>>
>> // Attempt to simulate Dagger's Lazy<T>
>> public class Lazy<T> {
>>   @Inject Provider<T> provider;
>>   private T instance;
>>   public synchronized T get() {
>>     if (instance == null) instance = provider.get();
>>     return instance;
>>   }
>> }
>>
>> public class Foo {
>>   @Inject Lazy<@Named("foo") String> lazy;
>> }
>>
>> Does the @Named("foo") follow the type parameter into the implementation 
>> of Lazy?  If not, then I guess any binding annotations on type arguments 
>> should cause an error unless they're on the argument to a Provider.
>>
>>
>> On Tuesday, 8 April 2014 17:06:05 UTC-4, Christian Gruber wrote:
>>
>>> Heh.  I just made an issue for exactly that purpose. 
>>>
>>> c. 
>>>
>>> On 8 Apr 2014, at 13:57, Tavian Barnes wrote: 
>>>
>>> > What about tests?  It seems difficult to test something like this 
>>> > without 
>>> > some test classes that actually use type annotations somewhere. 
>>> > 
>>> > Right now my idea is to put Java 8 specific tests in a special 
>>> > package, and 
>>> > exclude that package unless a special Maven profile is activated.  I 
>>> > assume 
>>> > something equivalent is possible with Ant. 
>>> > 
>>> > On Tuesday, 8 April 2014 12:55:56 UTC-4, Sam Berlin wrote: 
>>> > [snip]
>>>
>>  -- 
>> 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] <javascript:>.
>> To post to this group, send email to [email protected]<javascript:>
>> .
>> Visit this group at http://groups.google.com/group/google-guice.
>> 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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to