现状 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;
}
}
分享到:
相关推荐
Recognizing arbitrary multi-character text in unconstrained natural ...operating thresholds, the performance of the proposed system is comparable to, and in some cases exceeds, that of human operators.
– 由于有理数与整数、浮点数有许多共同特征,并且Number类是数字包装的根类,因此,把有理数类Rational定义为Number类的一个子类是比较合适的。由于有理数是可比较的,那么Rational类也应该实现Comparable接口。+下...
前面6个包装类是与数字相关的 父类:Number Boolean、Character 父类:Object 8个包装类实现的接口:Serializable ,Comparable 3、构造方法 前面6个包装类、Boolean 1、本身常量值的一个构造方法 ...
下图描述了 Rational 类与 Number 类和 Comparable 接口的继承关系: ``` +---------------+ | Number | +---------------+ | | v +---------------+ | Rational | +---------------+ | | v +--------...
public class MyNumber implements Comparable<MyNumber> { private int value; // 构造函数、getters和setters略... @Override public int compareTo(MyNumber other) { return Integer.compare(this.value...
- `Byte` 封装类,继承自`Number`类,实现了`Comparable<Byte>`接口。提供了`parseByte()`和`toString()`等方法,方便在字节与字符串之间转换。 3. **Character VS char** - `char` 基本数据类型,占2字节,用于...
例如,List<? extends Number>表示一个可能是Number或其子类类型的列表。 类型推断:在Java 7及以上版本中,可以使用varargs和钻石操作符来推断类型参数。例如,List[] lists = Arrays.asList(new List() {{ add(...
6. **边界限制**:可以为类型参数设置边界,如`public class Box<T extends Comparable<T>> {...}`,这样T就必须是Comparable的实例。 7. **类型擦除**:Java的泛型是通过类型擦除实现的,这意味着在运行时,所有的...
"Java中extends一定是代表继承吗?" extends关键字在Java中是一个...我们还探讨了泛型中的extends和super关键字,以及为什么Java不新建一个“is”关键字。希望本文的内容对大家的学习或者工作具有一定的参考学习价值。
– 由于有理数与整数、浮点数有许多共同特征,并且Number类是数字包装的根类,因此,把有理数类Rational定义为Number类的一个子类是比较合适的。由于有理数是可比较的,那么Rational类也应该实现Comparable接口。
Global optimization plays an outstanding role in applied mathematics, because a huge number of problems arising in natural sciences, engineering, and economics can be formulated as global optimization...
为什么使用有界类型?以下是一些关键原因: 1. **类型安全**:通过指定边界,编译器可以在编译时检查类型错误,避免运行时异常,如 `ClassCastException`。 2. **更好的API设计**:有界类型允许我们为泛型类或方法...
8. **限制性泛型**:通过泛型约束,可以限制类型参数必须遵循的规则,如`public class Box<T extends Comparable<T>>`,这里规定T必须实现Comparable接口。 9. **类型推断**:自JDK 7起,Java引入了类型推断,使得...
例如,<? extends Number>表示只能使用Number及其子类类型。 4. 泛型类和泛型接口:在类或接口的定义中使用类型参数,从而实现类或接口的通用性。例如,List就是一个泛型类,Comparable就是一个
例如,`class Box<T extends Comparable<T>>`表示Box类的类型参数T必须是Comparable接口的实现类。 5. **多类型参数**:泛型不仅可以有一个类型参数,还可以有多个,如`Pair, B>`表示Pair类包含两个不同类型A和B的...
在上面的例子中,我们使用了有界类型参数 `T extends Comparable<T>`,这意味着类型参数 `T` 只能是 `Comparable<T>` 或者其子类。这样我们可以保证传递给 `maximum` 方法的参数都是可以比较的。 Java 泛型提供了一...
在这个例子中,`GenericInterface`是一个泛型接口,`T`是它的类型参数,`operate()`方法接受一个类型为`T`的参数。 2. **类型参数的约束** 我们还可以对类型参数进行约束,限制它可以是哪些类型的子类。例如,...
extends Number`则限制为Number或其子类。这在处理多种类型的集合时非常有用,如方法参数的定义。 3. **类型擦除**:由于Java的向后兼容性,泛型并未在字节码级别实现,而是通过类型擦除进行处理。这意味着在编译...
The nonlinear addressing scheme is used to adaptively vary the number of interpolation points as the slope of the sinusoid changes, leading to a greatly reduced ROM size. The proposed architecture ...
scheme for storing a small number of bits in order to allow perfect reversal with forgetting. Our method achieves comparable performance to traditional models while reducing the activation memory ...