Hi Romain,

In plain old java the assignment does not work either:

public class MyClass<T>
{
  ArrayList<T> myTList = ...
  ArrayList<String> myStringList = myTList;
}

does not work...

And if we have an injection point

@Inject String myString;

and a Producer

@Produces Object myObject;

then they don't match.

So why should it match with generics?

Cheers,
Arne

Am 06.07.13 12:50 schrieb "Romain Manni-Bucau" unter
<rmannibu...@gmail.com>:

>So i confirm what i said, ArrayList<T> can be for String, Foo....so i
>think
>classes should follow it, just match what i expect since i could do it in
>plain old java
>Le 6 juil. 2013 10:18, "Arne Limburg" <arne.limb...@openknowledge.de> a
>écrit :
>
>> Forgot to mention that T is an unbound type variable at class level:
>>
>>
>> public class MethodTypeProduces1<T>
>>
>> and there is no subclass of MethodTypeProduces1
>>
>>
>> Am 06.07.13 10:12 schrieb "Romain Manni-Bucau" unter
>> <rmannibu...@gmail.com>:
>>
>> >Wait, not sure google ate a part of the code or not but if a <T> then T
>> >can
>> >be String (like ArrayList itself)
>> >Le 6 juil. 2013 09:18, "Arne Limburg" <arne.limb...@openknowledge.de> a
>> >écrit :
>> >
>> >> Hi,
>> >>
>> >> I am currently struggling with the handling of generics in OWB,
>>because
>> >> CDI 1.1 TCK requires us to be much more clever than we are now in
>>this
>> >>area.
>> >> However I stumbled about a test in our test-suite that seems to be
>>wrong
>> >> to me, but I would like to have another opinion.
>> >> With my local implementation of the generic handling (which is much
>> >>better
>> >> than the one in trunk) the following tests fails:
>> >> MethodProducer1Test.testPersonProducer
>> >>
>> >> Basically it tests if an ArrayList with an unbound type variable is
>> >> injectable into an injection point of type ArrayList<String>:
>> >>
>> >>     @Produces @Dependent @Named("ProMethodParameterized3")
>> >>
>> >>     ArrayList<T> methodPT3() {...}
>> >>
>> >> and
>> >>
>> >>     @Inject ArrayList<String> pt3;
>> >>
>> >> Reading 5.2.4 of the CDI 1.1 spec (the fourth bullet point) I would
>> >> suggest that this should lead to an error since String is not
>>assignable
>> >> from Object (which is the upper bound of T).
>> >>
>> >>
>> >> WDYT?
>> >>
>> >>
>> >> Cheers,
>> >>
>> >> Arne
>> >>
>>
>>

Reply via email to