Molto bene è possibile chiamare un metodo statico con oggetto nullo.
Vedere l'esempio di seguito.
public class Hashing {
public static void Hash() {
System.out.println("hello");
}
public static void main(String[] args) {
Hashing h = null;
h.Hash();
}
}
Sopra frammento di codice stamperà ciao
Perché al momento della compilazione h.hash()
verrà convertito in Hashing.hash()
poiché hash()
è un metodo statico.
Quando ho deselezionato il file .class
ho ottenuto questo codice.
/*
* Decompiled with CFR 0_114.
*/
import java.io.PrintStream;
public class Hashing {
public static void Hash() {
System.out.println("hello");
}
public static void main(String[] args) {
Object h = null;
Hashing.Hash();
}
}
Come si può vedere nel frammento sopra h.Hash();
viene convertito in Hashing.Hash();
HTH !!
fonte
2016-05-31 17:33:51
hai provato ancora ??? –
Hai provato '((YourClass) null) .methodA()'? – Kayaman
"... quindi perché è necessario chiamare il metodo statico con oggetto ..." - è ** non ** richiesto. –