]
Jozef Hartinger commented on CDI-502:
-------------------------------------
"Assignability of raw and parameterized types" rules which do not currently
allow this usecase. That indirectly indicates that this scenario is not supported by the
spec. If we want to change it we'll need to update the rules also.
Clarify "contains" meaning in "Legal bean types"
specification.
---------------------------------------------------------------
Key: CDI-502
URL:
https://issues.jboss.org/browse/CDI-502
Project: CDI Specification Issues
Issue Type: Clarification
Components: Beans, Inheritance and Specialization
Reporter: Tomasz Krakowiak
CDI 1.1, section 2.2.1. Legal bean types says:
{quote}
A parameterized type that contains a wildcard type parameter is not a legal bean type.
{quote}
Does it means direct containment or deep/recursive containment?
I understand this is clearly illegal:
{code}
@Produces
List<?> produceList(){
//...
}
{code}
But, are those two bean definitions legal:
{code}
@Produces
List<Optional<?>> produceList(){
//...
}
{code}
{code}
// Bean types: MyList, List<Optional<?>>, Object
// or
// Bean types: MyList, Object
@Dependent
MyList extends List<Optional<?>> {
//...
}
{code}