4

我正在创建一些类来表示 Java 的无符号数字,并从 Number 派生它们。我的目标之一是让它们装箱和拆箱原始值,但我无法让它工作,也无法找到任何关于如何在其他地方实现这一目标的讨论。

这可以做到吗?如果可以,怎么做?

这是我不工作的代码!

public class Unsigned8 extends Number implements Comparable<Unsigned8>{

public static final long MAX_VALUE = 256L;
public static final long MIN_VALUE = 0;
private long _Value;


public Unsigned8(long value)
{
    this._Value = value;
}

@Override
public byte byteValue() {
    return (byte) _Value;
}

@Override
public short shortValue() {
    return (short) _Value;
}

@Override
public int intValue() {
    return (int) _Value;
}

@Override
public long longValue() {
    return (long) _Value;
}

@Override
public double doubleValue() {
    return _Value;
}

@Override
public float floatValue() {
    return _Value;
}

@Override
public int compareTo(Unsigned8 target) {
    return (int) (_Value - target._Value);
}

}

4

2 回答 2

5

你不能。我所做的是使用Unsigned帮助器类short intlong这样您就不会产生包装器支持unsigned类型的开销。有关示例,请参见链接。

于 2012-07-03T16:24:36.417 回答
3

不,您会得到原语及其包装器之间的关系,如下所示:

原始类型包装类
boolean 布尔值
字节字节
char 字符
浮动 浮动
整数
长长
短 短

它们仅限于这些类型。文档在这里

于 2012-07-03T16:31:47.967 回答