I am trying to create a class implementing Blackberry’s Comparator so I can easily sort 2D arrays.
import net.rim.device.api.util.Comparator;
class ArrayComparator implements Comparator<Object[]> {
...
}
This gives me the error:
The Type Comparator is not generic; it can not be parameterized with
arguments<Object[]>
This error goes away if I include the normal JRE library and import java.util.Comparator, but this won’t compile because it is a mobile device, the library is not preverified, etc, etc, etc.
How can I resolve this issue?
Sicne you’re defining a comparator for a particular class you don’t need (and can’t use) generics. Your array comparator should cast the
Objecttype parameters to their corresponding type before comparing in the compare method you override.For example, your ArrayComparator should cast
o1ando2to an array. In the future if you make a, say, UserDataComparator the compare method should cast the parameters to yourUserDataclass type.FYI: Blackberry’s compiler (RAPC) supports up to java 1.4 AFAIK (check this) so Generics, Enums and other Java 1.5 and above features are not supported.
EDIT As other persons pointed (and for the sake of a complete answer) I was not specific enough on my anwer. I have edited this answer to reflect some crucial points related to your issue.