Salve a tutti,
la seguente istruzione
può essere abbreviata con:
Potete spiegarmi o fornirmi dei link a del materiali che spieghi le abbreviazioni in Java??
Questa riga è relativa alla Reflection in Java??
Visualizzazione stampabile
Salve a tutti,
la seguente istruzione
può essere abbreviata con:
Potete spiegarmi o fornirmi dei link a del materiali che spieghi le abbreviazioni in Java??
Questa riga è relativa alla Reflection in Java??
Il metodo
restituisce una classe di tipo MenuInflater che come puoi vedere dal link, fra i vari metodi, possiede c'è anche "inflate(int menuRes, Menu menu)" quindi
nel caso
la riga 1 ottiene l'istanza della classe MenuInflater mentre la riga 2 invoca il metodo inflate sulla variabile inflater.
Utilizzando invece la notazione
si ottiene lo stesso risultato tranne per il fatto che non si passa per la variabile inflater
Un dubbio.
Te scrivi: "la riga 1 ottiene l'istanza della classe MenuInflater"
MenuInflater inflater = getMenuInflater();
Ma per creare un'istanza non si deve scrivere:
Nome_Classe Nome_Oggetto = new Nome_Classe();??
Perchè la seconda parte è diversa??
getMenuInflater(); è la chiamata ad un metodo.
Ti faccio un esempio per capire meglio:
Ho una classe chiamata ClasseA definita in quato modo:
Come puoi notare la classe A nel suo metodoB chiama il metodo getMenuInflater() che a sua volta instanzia e restituisce una istanza di MenuInflater.codice:public class ClasseA {
public MenuInflater getMenuInflater() {
return new MenuInflater();
}
public void metodoB() {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_quiz, menu);
}
public void metodoC() {
MenuInflater inflater = new MenuInflater();
inflater.inflate(R.menu.menu_quiz, menu);
}
}
Il metodo C invece instanzia direttamente il MenuInflater.
In questo esempio entrambi i metodi fanno esattmente la stessa cosa ma in 2 maniere diverse. Spero che questo riesca a farti un po di chiarezza riguardo la tua domanda.
Sì è chiaro. E' solo che è la prima volta che lo vedo scritto un metodo e un'istanziazione in quel modo.
Quindi MenuInflater è un metedo e getMenuInflater() e un altro metodo che istanzia direttamente MenuInflater. Ok.
Mi puoi indicare qualche link al materiale per approfondire questo??