Sono un principiante in Java. La prima cosa che ho imparato è che il metodo main() di una classe eseguibile dovrebbe essere pubblico e il motivo dato era dato dal fatto che questo metodo verrà chiamato dallo JVM che dovrebbe essere visibile all'esterno della classe e quindi dovrebbe essere pubblico. Ora mentre studio la serializzazione, trovo che i metodi privati writeObject()
e readObject()
di una classe Serializable
possono essere chiamati dalla JVM durante la serializzazione e la de-serializzazione di un oggetto! Se sono metodi privati, allora come può chiamarli JVM? Se può allora perché non può chiamare il metodo main()?JVM e metodi privati
Dopo sfogliando una certa documentazione java, ho letto questa linea "JVM può accedere metodi privati di un oggetto". Poiché chiamiamo readObject() usando un'istanza di ObjectInputStream in modo che sia accessibile a JVM, mentre il metodo main() essendo un metodo statico o di classe e chiamato senza creare un'istanza qualsiasi oggetto della classe dovrebbe essere pubblico per essere accessibile a JVM! Ha senso ? Non lo so .
Dovrebbe essere pubblica, ma ti ha detto la ragione sbagliata. Il motivo corretto è perché è stato detto in Java Language Reference. – Ingo