1. ホーム
  2. java

[解決済み] javaでオブジェクトの型を識別する方法【重複

2022-02-18 22:40:31

質問

<ブロッククオート

重複の可能性があります。
オブジェクトのクラスを決定する方法(Javaの場合)?
Javaはオブジェクトがどのクラスであるかを決定する

与えられたオブジェクトのオブジェクトタイプを比較する不完全なメソッドのサンプルを以下に示します。

public void test(Object value) {

        if (value.getClass() == Integer) {
            System.out.println("This is an Integer");
        }else if(value.getClass() == String){
            System.out.println("This is a String");
        }else if(value.getClass() == Float){
            System.out.println("This is a Float");
        }

}

として、このメソッドを呼び出すことができる。

test("Test");
test(12);
test(10.5f);

このメソッドは実際には動作しませんので、動作するようにするために私を助けてください

解決方法は?

を忘れていませんか? .class :

if (value.getClass() == Integer.class) {
    System.out.println("This is an Integer");
} 
else if (value.getClass() == String.class) {
    System.out.println("This is a String");
}
else if (value.getClass() == Float.class) {
    System.out.println("This is a Float");
}

このようなコードは、通常、OO設計が不十分であることの表れであることに注意してください。

また、オブジェクトのクラスをクラスと比較することと、instanceofを使うことは同じことではないことに注意してください。例えば

"foo".getClass() == Object.class

は false であるのに対し

"foo" instanceof Object

が真であることを示します。

どちらを使わなければならないかは、お客様の要件によります。