instanceof Vs getClass ()

Я вижу повышение производительности при использовании оператора getClass () и == вместо оператора instanceOf .

Object  str = new Integer("2000");

long starttime = System.nanoTime();

if(str instanceof String) {
    System.out.println("its string");
} else {
    if (str instanceof Integer) {
        System.out.println("its integer");

    }
}

System.out.println((System.nanoTime()-starttime));

starttime = System.nanoTime();

if(str.getClass() == String.class) {
    System.out.println("its string in equals");
} else {
    if(str.getClass() == Integer.class) {
        System.out.println("its integer");
    }
}

System.out.println((System.nanoTime()-starttime));

Есть ли какие-либо рекомендации, какие использовать getClass () или instanceOf ?

Учитывая сценарий: я знаю точные классы для сопоставления, то есть String , Integer (это финальные классы) и т. Д.

Использует ли оператор instanceOf плохую практику?

106
задан nbro 20 October 2015 в 23:01
поделиться