Vedo guadagno in termini di prestazioni durante l'utilizzo getClass()
e ==
operatore di sopra instanceOf
dell'operatore.
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));
C'è qualche linea guida, quale usare getClass()
o instanceOf
?
Dato uno scenario: So classi esatte da abbinare, cioè String
, Integer
(questi sono classi finali), etc.
Usare l' instanceOf
operatore è una cattiva pratica?