Problem about generics and class array  
Author Message
Kaiser S.





PostPosted: 2007-5-3 20:29:00 Top

java-programmer, Problem about generics and class array Can somebody explains why the last line of code doesn't compile ?

public class TestClassArray {
private static class A {
}
private static class B extends A {
}

Class[] rawClasses = { B.class }; // warning

Class<?>[] wildcardsClasses = { B.class };

// error : Cannot create a generic array of Class<? extends
TestClassArray.A>
Class<? extends A>[] upperBoundClasses = { B.class };
}
 
Ingo R. Homann





PostPosted: 2007-5-3 21:20:00 Top

java-programmer >> Problem about generics and class array Hi usual suspect, ;-)

Kaiser S. wrote:
> Can somebody explains why the last line of code doesn't compile ?
>
> Class<? extends A>[] upperBoundClasses = { B.class };

Because Generic Arrays are not allowed. (Read the fine error message ;-)

Ciao,
Ingo

 
Kaiser S.





PostPosted: 2007-5-3 21:43:00 Top

java-programmer >> Problem about generics and class array >> Can somebody explains why the last line of code doesn't compile ?
>>
>> Class<? extends A>[] upperBoundClasses = { B.class };
>
> Because Generic Arrays are not allowed. (Read the fine error message ;-)

Damned! Thx for your help :)
 
 
Ingo R. Homann





PostPosted: 2007-5-3 21:48:00 Top

java-programmer >> Problem about generics and class array Hi, Mr. Spacey ;-)

Kaiser S. wrote:
>>> Can somebody explains why the last line of code doesn't compile ?
>>>
>>> Class<? extends A>[] upperBoundClasses = { B.class };
>>
>> Because Generic Arrays are not allowed. (Read the fine error message ;-)
>
> Damned! Thx for your help :)

Note that a

List<Class<? extends A>>

is perfectly OK!

Ciao,
Ingo