Javaの数値クラスのガイド
1. 概要
このチュートリアルでは、Javaの Number classについて説明します。 まず、 Numberクラスの機能と、それに含まれるメソッドについて学習します。 次に、このabstractクラスのさまざまな実装について詳しく説明します。
2. 番号クラス
Number は、java.langパッケージのabstractクラスです。 さまざまなサブクラスがNumberクラスを拡張します。 最も一般的に使用されるものは次のとおりです。
- バイト
- 短い
- 整数
- 長いです
- ダブル
- 浮く
このクラスの主な目的は、問題の数値を byte 、 short 、 int 、などのさまざまなプリミティブ型に変換するメソッドを提供することです。 long 、 double 、およびfloat。
タスクの実行に役立つ4つのabstractメソッドを使用できます。
- intValue()
- longValue()
- doubleValue()
- floatValue()
Numberには、byteValue()とshortValue()の2つの具体的なメソッドもあり、それぞれ、指定された数値のbyte値とshort値を返します。 Number クラスのさまざまな実装の詳細については、ラッパークラスに関する記事を参照してください。
次のセクションでは、これらのメソッドとその使用法について詳しく説明します。
3. 具体的な方法
具体的な方法を一つ一つ議論していきましょう。
3.1. shortValue ()
名前が示すように、このメソッドは指定されたNumberオブジェクトをプリミティブな短い値に変換します。
デフォルトの実装では、int値をshortにキャストして返します。 ただし、サブクラスには独自の実装があり、それぞれの値をshortにキャストしてから戻ります。
Double値がshortプリミティブ型に変換される方法は次のとおりです。
@Test
public void givenDoubleValue_whenShortValueUsed_thenShortValueReturned() {
Double doubleValue = Double.valueOf(9999.999);
assertEquals(9999, doubleValue.shortValue());
}
3.2. byteValue()
このメソッドは、指定されたNumberオブジェクトの値をバイト値として返します。 それにもかかわらず、Numberクラスの子クラスには独自の実装があります。
Float値をbyte値に変換する方法は次のとおりです。
@Test
public void givenFloatValue_whenByteValueUsed_thenByteValueReturned() {
Float floatValue = Float.valueOf(101.99F);
assertEquals(101, floatValue.byteValue());
}
4. 抽象メソッド
さらに、 Number クラスには、いくつかの抽象メソッドとそれらを実装するいくつかのサブクラスもあります。
このセクションでは、これらのメソッドがどのように使用されるかを簡単に見てみましょう。
4.1。intValue()
このメソッドは、コンテキスト内のNumberのint表現を返します。
Longの値をintに変更する方法を見てみましょう。
@Test
public void givenLongValue_whenInitValueUsed_thenInitValueReturned() {
Long longValue = Long.valueOf(1000L);
assertEquals(1000, longValue.intValue());
}
確かに、コンパイラはlong値をintに変換することにより、ここでnarrowing操作を実行しています。
4.2. longValue()
このメソッドは、longとして指定されたNumberの値を返します。
この例では、Integer値がIntegerクラスを介してlongに変換される方法を示しています。
@Test
public void givenIntegerValue_whenLongValueUsed_thenLongValueReturned() {
Integer integerValue = Integer.valueOf(100);
assertEquals(100, integerValue.longValue());
}
intValue()メソッドとは対照的に、 longValue()は、wideningプリミティブ変換後にlong値を返します。
4.3. floatValue()
@Test
public void givenShortValue_whenFloatValueUsed_thenFloatValueReturned() {
Short shortValue = Short.valueOf(127);
assertEquals(127.0F, shortValue.floatValue(), 0);
}
同様に、 longValue()および floatValue()も拡大プリミティブ変換を実行します。
4.4. doubleValue()
最後に、このメソッドは、指定されたNumberクラスの値をdoubleプリミティブデータ型に変換して返します。
このメソッドを使用してバイトをdoubleに変換する例を次に示します。
@Test
public void givenByteValue_whenDoubleValueUsed_thenDoubleValueReturned() {
Byte byteValue = Byte.valueOf(120);
assertEquals(120.0, byteValue.doubleValue(), 0);
}
5. 結論
このクイックチュートリアルでは、 Number class。の最も重要なメソッドのいくつかを見ていきました。
最後に、これらのメソッドをさまざまなラッパークラスで使用する方法を示しました。
いつものように、記事の完全なソースコードは、GitHubでから入手できます。