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()

このメソッドは、コンテキスト内のNumberint表現を返します。

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から入手できます。