1

クラスをにキャストする方法に疑問がありますInteger。例:

public class IntegerField extends Field {
    private Integer value;
    public IntegerField(Integer value) {
        super();
        this.value = value;
    }
    public int intValue() {
        return value;
    }
}

どうすれば作成できますか:

IntegerField a = new IntegerField(8);
Integer b = (Integer) a;

ありがとう!

4

2 に答える 2

4

いいえ。Javaで独自の変換演算子を定義することはできません。ただし、メソッドを追加するのは簡単です。

public class IntegerField extends Field {
    private Integer value;
    public IntegerField(Integer value) {
        super();
        this.value = value;
    }

    public Integer toInteger() {
        return value;
    }
}

...

IntegerField a = new IntegerField(8);
Integer b = a.toInteger();

なぜあなたはキャストを好むのですか?

intValue(nullの場合に例外をスローするメソッドを削除したことに注意してくださいvalue。の呼び出し元は、その動作が必要な場合toIntegerはいつでもに変換できます。)int

于 2013-02-23T19:28:08.017 に答える
0

整数b=(整数)a; ---値がプライベートであるため、正しくありません。値を取得するメソッドを作成する必要があります。Integerb = a.intValue();

于 2013-02-23T19:33:13.203 に答える