Java typeof 演算子

Mohammad Irfan 2023年10月12日
  1. Java で変数/値の型を取得する
  2. Java で任意の変数/値の型を取得する
Java typeof 演算子

このチュートリアルでは、Java で変数または値のデータ型を取得する方法を紹介し、トピックを理解するためのサンプルコードをいくつか示します。

Java では、変数または値の型を取得するために、Object クラスの getClass() メソッドを使用できます。これを行う唯一の方法は、タイプをチェックするための typeof() メソッドを使用する JavaScript とは異なります。

Object クラスの getClass() メソッドを使用したため、プリミティブではなく、オブジェクトでのみ機能します。プリミティブのタイプを取得する場合は、最初にラッパークラスを使用してそれらを変換します。いくつかの例で理解しましょう。

Java で変数/値の型を取得する

この例では、getClass() を使用して変数の型をチェックしました。この変数は文字列型であるため、メソッドを直接呼び出すことができます。以下の例を参照してください。

getClass() メソッドは、この場合は java.lang.String などのパッケージ名を含む完全修飾クラス名を返すことに注意してください。

public class SimpleTesting {
  public static void main(String[] args) {
    String msg = "Hello";
    System.out.println(msg);
    System.out.println("Type is: " + msg.getClass());
  }
}

出力:

Hello
Type is: class java.lang.String

Java で任意の変数/値の型を取得する

上記の例では、文字列変数を使用し、同様にその型を取得しました。別のタイプの変数を使用することもでき、メソッドは目的の結果を返します。以下の例を参照してください。

この例では、文字列とは別に、整数と文字の 2つの変数を作成し、getClass()メソッドを使用しました。

package javaexample;
public class SimpleTesting {
  public static void main(String[] args) {
    String msg = "Hello";
    System.out.println(msg);
    System.out.println("Type is: " + msg.getClass());
    // Integer
    Integer val = 20;
    System.out.println(val);
    System.out.println("Type is: " + val.getClass());
    // Character
    Character ch = 'G';
    System.out.println(ch);
    System.out.println("Type is: " + ch.getClass());
  }
}

出力:

Hello
Type is: class java.lang.String
20
Type is: class java.lang.Integer
G
Type is: class java.lang.Character

getClass() メソッドは、パッケージ名を含む、クラスの完全修飾名を返します。タイプ名のみを取得する場合は、単一の文字列を返す getSimpleName() メソッドを使用できます。以下の例を参照してください。

package javaexample;
public class SimpleTesting {
  public static void main(String[] args) {
    String msg = "Hello";
    System.out.println(msg);
    System.out.println("Type is: " + msg.getClass().getSimpleName());

    // Integer
    Integer val = 20;
    System.out.println(val);
    System.out.println("Type is: " + val.getClass().getSimpleName());

    // Character
    Character ch = 'G';
    System.out.println(ch);
    System.out.println("Type is: " + ch.getClass().getSimpleName());
  }
}

出力:

Hello
Type is: String
20
Type is: Integer
G
Type is: Character

関連記事 - Java Operator