Number 为何不 Comparable

现状 java 5+
package java.lang.Number
  public abstract class Number implements java.io.Serializable
package java.lang.Integer
  public final class Integer extends Number implements Comparable<Integer>


麻烦
* 直觉上 Number应该是可以 Comparable。
* 接受 Comparable<T> 的方法可以使用 Integer,有时 Integer被包成Number,就不能用了。

讨论
这样有啥不好。

public abstract class XNumber<T extends XNumber<T>> implements java.io.Serializable,Comparable<T>{
    private static final long serialVersionUID = 1L;
}

public final class XLong extends XNumber<XLong>  {
    private static final long serialVersionUID = 1L;

    @Override
    public int compareTo(XLong o) {
        return 0;
    }
}

你可能感兴趣的:(java,jdk,PHP,.net)