Wenn ich habe folgendes:Was könnte beim Aufruf einer statischen Methode mit einem Objekt in Java schief gehen?
class A {
public A() { }
public static void foo() { System.out.println("foo() called"); }
}
public class Main {
public static void main(String [] args) {
A a = new A();
a.foo(); // <-- static call using an instance.
A.foo(); // <-- static call using class
}
}
es irgendwelche Probleme gibt, die den Aufruf von foo() mit einer Instanz auftreten können? Behandelt die JVM den ersten Aufruf von foo() genau wie eine statische Methode oder gibt es eine gewisse technische Feinheit?
das ist ein guter Punkt. Seltsamerweise, wenn ich gerade Ihre Hypothese getestet habe, arbeitet es * an einer Nullreferenz. –
Die Instanz kann null sein und die statische wird korrekt ausgeführt. – doomspork
Ja, deshalb sagte ich, ich sei mir nicht sicher. Die VM muss intelligent genug sein, um die Funktion von der Klasse anstelle der Instanz zu erhalten. – patros