4

Java の符号なし数値を表すいくつかのクラスを作成し、Number から派生させています。私の目標の 1 つは、それらをボックス化してプリミティブ値をアンボックス化することですが、これを機能させることも、他の場所でこれを達成する方法についての議論を見つけることもできません。

これを行うことができますか?

ここに私の動作しないコードがあります!

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

できません。私がしていることは、タイプをサポートするためのラッパーのオーバーヘッドが発生しないように、andにUnsignedヘルパー クラスを使用することです。例については、リンクを参照してください。short intlongunsigned

于 2012-07-03T16:24:36.417 に答える
3

いいえ。プリミティブとそのラッパーの間には、次のような関係があります。

プリミティブ型 Wrapper クラス
boolean ブール値
バイト バイト
char 文字
フロート フロート
int 整数
長い 長い
ショート ショート

これらのタイプに限定されます。ドキュメントはこちら

于 2012-07-03T16:31:47.967 に答える