Looks like a duplicate post?

-- Richard

On 31.07.2015, at 20:27, Martin Wunderlich <[email protected]> wrote:

> Hi all, 
> 
> I am currently developing some feature extractors in the DKPro framework and 
> I have come across a problem with the Class type in the following method in 
> org.apache.uima.fit.util.JCasUtil: 
> 
>  public static <T extends Annotation> List<T> selectCovered(JCas jCas, final 
> Class<T> type,
>          int begin, int end) {
>    return cast(CasUtil.selectCovered(jCas.getCas(), getType(jCas, type), 
> begin, end));
>  }
> 
> In my type system I have a base type „Proposition" that extends „Annotation" 
> and two more types which are derived from the base type: „Conclusion“ and 
> „Premise". If I use the base type for the generic type parameter T in this 
> method above, it works fine. If I use one of the sub-types of the base type, 
> I get the following error: 
> 
>       - Bound mismatch: The generic method selectCovered(JCas, Class<T>, int, 
> int) of type JCasUtil is not applicable for the arguments (JCas, 
> Class<Conclusion>, int, int). The 
>        inferred type Conclusion is not a valid substitute for the bounded 
> parameter <T extends Annotation>
> 
> Background is that I would like to use one abstract feature extractor for 
> common code which is parameterized with <T extends Proposition>  and the two 
> concrete sub-class FE’s, which are parameterized with the two sub-types. 
> 
> Maybe I have some misunderstanding regarding the use of Generics here. Could 
> it be that in the definition of selectCovered() the clause <T extends 
> Annotation> allows only direct sub-types of Annotation? Interestingly enough, 
> if I don’t parameterize the sub-class FEs, I don’t get any errors. 
> Thanks a lot. 
> 
> Cheers, 
> 
> Martin

Reply via email to