I tried to create an interface ISortableStack using > but I can't move forward. What does the following do?
>
I've tried this, but it doesn't help.
解决方案
> means that E must be a type that knows how to compare to itself, hence, the recursive type definition.
public class Comparables {
static class User implements Comparable {
@Override
public int compareTo(User user) {
return 0;
}
}
/**
* This class cannot be used with Collections.sort because an
* UncomparableUser is not comparable with itself. However, notice
* that you get no compiler error just for implementing
* Comparable.
*/
static class UncomparableUser implements Comparable {
@Override
public int compareTo(String user) {
return 0;
}
}
public static void main(String[] args) {
List users = Arrays.asList(new User());
// Using this would cause a compiler error
// List users = Arrays.asList(new UncomparableUser());
Collections.sort(users);
}
}