In una recente domanda, qualcuno ha chiesto informazioni sui metodi statici e una delle risposte ha dichiarato che in genere li chiami con qualcosa di simile:Sta chiamando metodi statici tramite un oggetto "cattivo formato"? Perché?
MyClassName.myStaticMethod();
I commenti su che anche affermato che si potrebbe anche chiamare tramite un oggetto con :
MyClassName myVar;
myVar.myStaticMethod();
ma che è stata considerata cattiva forma.
Ora a me sembra che questa operazione può effettivamente rendere la mia vita più facile in modo da non dover preoccuparsi su ciò che è statico o non (a).
c'è qualche problema con la chiamata di funzioni statiche tramite un oggetto? Ovviamente non si vuole creare un nuovo oggetto solo chiamarlo:
Integer xyzzy;
int plugh = xyzzy.parseInt ("42", 10);
Ma, se si dispone già di un oggetto del tipo desiderato, c'è un problema in usando esso?
(a) Ovviamente, non può chiamare un metodo non-statico con:
MyClassName.myNonStaticMethod();
ma non è questo il problema che sto chiedendo qui.
Vedere questa risposta SO per informazioni http://stackoverflow.com/questions/610458/why-isnt-calling-a-static-method-by-way-of-an-instance-an-error-for-the -java-co/610674 # 610674 –
Quando leggo il codice e c'è una chiamata a un metodo, per me è ** molto ** rilevante per essere in grado di dire subito che quella chiamata non può leggere né modificare lo stato dell'oggetto appartiene a. Con 'MyClassName.myStaticMethod();' non c'è nemmeno bisogno di chiedersi per un secondo. Con 'myVar.myStaticMethod();' hai bisogno di vedere il codice del metodo e sarai sempre in dubbio per tutte le chiamate. Ovviamente IDE diversi potrebbero rendere queste informazioni facili da recuperare (tooltip Javadoc, evidenziazione della sintassi, ecc.) Ma non mi affiderei a questo per decidere come scrivere il codice. – SantiBailors