Я вижу выигрыш в производительности при использовании операторов 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
?