Je constate un gain de performances lors de l'utilisation getClass()
et de l' ==
opérateur par rapport à l' instanceOf
opérateur.
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));
Existe-t-il une directive, laquelle utiliser getClass()
ou instanceOf
?
Étant donné un scénario: je connais les classes exactes à associer, c'est-à- String
dire Integer
(ce sont des classes finales), etc.
L'utilisation d'un instanceOf
opérateur est-elle une mauvaise pratique?