interface Comparable {
public int compareTo (Object that);
}
class Byte implements Comparable {
private byte value;
public Byte (byte value) { this.value = value; }
public byte byteValue () { return value; }
public int compareTo (Byte that) {
return this.value - that.value;
}
// bridge
public int compareTo (Object that) {
return this.compareTo((Byte)that);
}
}
class Lists {
public static Comparable max (List xs) {
Iterator xi = xs.iterator();
Comparable w = (Comparable)xi.next();
while (xi.hasNext()) {
Comparable x = (Comparable)xi.next();
if (w.compareTo(x) < 0) w = x;
}
return w;
}
}
class Test {
public static void main (String[] args) {
// byte list
List xs = new LinkedList();
xs.add(new Byte(0)); xs.add(new Byte(1));
Byte x = (Byte)Lists.max(xs);
// boolean list
List ys = new LinkedList();
ys.add(new Boolean(false)); ys.add(new Boolean(true));
Boolean y = (Boolean)Lists.max(ys); // run-time exception
}
}
Example 3: Declarations for the Comparable interface and the Byte class that implements this interface.
Back to Article