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].
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