Fragen zum Design beiseite, was macht moderne JVMs schneller?Was ist schneller: instanceof oder isInstance?
foo instanceof Bar
oder
Bar.class.isInstance(foo)
Warum?
Fragen zum Design beiseite, was macht moderne JVMs schneller?Was ist schneller: instanceof oder isInstance?
foo instanceof Bar
oder
Bar.class.isInstance(foo)
Warum?
foo instanceof Bar
sollte schneller sein.
Sie können Bar.class.isInstance(foo)
verwenden, wenn es zur Kompilierzeit nicht klar ist, welche Klasse Sie haben.
ist folgendes zu beachten:
void test(Object o1, Object o2) {
o1.getClass().isInstance(o2);
}
In diesem exsample die JVM zur Laufzeit entscheidet, welche Klasse die Methode aufruft. Mit instanceof
ist dies nicht möglich.
Also, wenn Sie die Klasse zum Zeitpunkt der Kompilierung wissen sollten Sie instanceof
# 1. Es ist in die Sprache eingebaut. Du wirst nicht besser werden. –
Es kommt fast nie darauf an, was schneller ist. – biziclop
@LouisWasserman Ich versuche nicht, es besser zu machen, ich bin nur neugierig, welche Operation schneller ist. – artspb