[cdi-dev] Question about section 4.2

Pete Muir pmuir at redhat.com
Tue Jul 2 09:11:56 EDT 2013


On 2 Jul 2013, at 11:28, John D. Ament <john.d.ament at gmail.com> wrote:

> Hi all
> 
> In section 4.2 of the CDI spec (both 1.0 and 1.1) there are references to injection around generic types.  I was wondering if someone could clarify this case?
> 
> I have an interface: 
> 
> public interface Handler<? extends Foo> { ... }
> 
> and then I have two implementations
> 
> public class FarlowHandler implements Handler<Farlow> { .. }
> 
> public class BagelHandler implements Handler<Bagel> { ... }
> 
> Is it expected that I should be able to inject references to these by doing:
> 
> @Inject
> private Handler<Farlow> fHandler;
> 
> @Inject
> private Handler<Bagel> bHandler;

Yes.

> 
> ?  Is there any expected difference when using EJBs?

Assuming the interface is part of the local client view of the EJB, then no. Obviously, if EJB has any rules around declaring generic types in local interfaces, then you need to respect those (IIRC, it doesn't).




More information about the cdi-dev mailing list