10

AtomicInteger に int get() と int intValue() の両方があるのはなぜですか? Number から、とりわけ float floatValue() もあることがわかります。AtomicInteger パラメータの原子性を維持することに関連する意味がありますか、それとも両方とも交換可能ですか?

4

3 に答える 3

9

それらは交換可能でなければなりません。のソース コードの関連部分は次のAtomicIntegerとおりです。

public int intValue() {
    return get();
}
于 2013-08-21T18:41:55.700 に答える
2

Numberクラスのドキュメントから:

抽象クラス Number は、クラス BigDecimal、BigInteger、Byte、Double、Float、Integer、Long、および Short のスーパークラスです。

AtomicInteger のドキュメントから


クラスNumber の記述:指定された数値の値を int として返します。これには、丸めまたは切り捨てが含まれる場合があります。

AtomicInteger抽象クラスを拡張するのでNumber、抽象メソッドintValue()を実装する必要があります。この場合、それらは等しいです。他のタイプ ( BigDecimalDoubleまたは などFloat) の場合は、はるかに理にかなっています。

于 2013-08-21T18:48:35.750 に答える