Video: Como usar Dagger2 Ejemplo Sencillo - Inyeccion de Dependencias 07 2025
Der er et par ting, du vil tænke på, når du genbruger navne i din Android-app. Du kunne erklære to Java-variabler -
bag1
og
bag2
- for at henvise til to forskellige
BagOfCheese
objekter. Det er fint. Men nogle gange fungerer kun lige så godt som at have kun en variabel og genbruge den til det andet objekt som vist her.
pakke com. allmycode. a09_03;
import android. support. v7. app. AppCompatActivity;
importer android. OS. Bundt;
importer android. widget. TextView;
import com. allmycode. a09_01. BagOfCheese;
offentlig klasse MainActivity udvider AppCompatActivity {
TextView textView;
@Override
beskyttet ugyldig onCreate (Bundle savedInstanceState) {
super. onCreate (savedInstanceState);
setContentView (R. Layout. Activity_main);
textView = (TextView) findViewById (R. Id. TextView);
BagOfCheese taske = Ny BagOfCheese ();
taske. kind = "Cheddar";
taske. vægt = 2,43;
taske. daysAged = 30;
taske. erDomestic = true;
TextView. setText ("");
TextView. tilføj (pos. kind + "," + taske, vægt + "," +
taske. daysAged + "," + taske. isDemestic + " n");
taske = ny BagOfCheese ();
taske. kind = "Blue";
taske. vægt = 5. 987;
taske. daysAged = 90;
taske. erDomestic = false;
TextView. tilføj (pos. kind + "," + taske, vægt + "," +
taske. daysAged + "," + taske. isDemestic + " n");
}
}
I denne kode, når Java udfører den anden
taske = nye BagOfCheese ()
erklæring, er den gamle genstand (posen indeholdende cheddar) forsvundet. Uden taske (eller anden variabel), der henviser til det cheddar-objekt, er der ingen måde, din kode kan gøre noget med cheddar-objektet. Heldigvis når du når den anden
taske = Ny BagOfCheese ()
er du færdig med at gøre alt, hvad du vil gøre med den originale cheddar taske. I dette tilfælde er genbrug af posen variabel acceptabel.
Når du genbruger en variabel (som en og kun
pose
variablen ovenfor), gør du det ved at bruge en opgaveopgørelse, ikke en initialisering. Med andre ord skriver du ikke
BagOfCheese taske
en anden gang i din kode. Hvis du gør det, kan du se fejlmeddelelser i editoren til Android Studio.
For at være smerteligt præcis kan du faktisk skrive
BagOfCheese taske
mere end én gang i samme stykke kode.
Ingen af klasserne
BagOfCheese
er
endelige
. Med andre ord giver klassens kode dig mulighed for at omfordele værdier til felterne inde i et
BagOfCheese
objekt.Med disse oplysninger i tankerne kan du forkorte koden ovenfor med en linje, som vist her.
pakke com. allmycode. a09_04;
importer android. support. v7. app. AppCompatActivity;
importer android. OS. Bundt;
importer android. widget. TextView;
import com. allmycode. a09_01. BagOfCheese;
offentlig klasse MainActivity udvider AppCompatActivity {
TextView textView;
@Override
beskyttet ugyldigt onCreate (Bundle savedInstanceState) {
super. onCreate (savedInstanceState);
setContentView (R. Layout. Activity_main);
textView = (TextView) findViewById (R. Id. TextView);
BagOfCheese taske = Ny BagOfCheese ();
taske. kind = "Cheddar";
taske. vægt = 2,43;
taske. daysAged = 30;
taske. erDomestic = true;
TextView. setText ("");
TextView. tilføj (pos. kind + "," + taske, vægt + "," +
taske. daysAged + "," + taske. isDemestic + " n");
// taske = ny BagOfCheese ();
taske. kind = "Blue";
taske. vægt = 5. 987;
taske. daysAged = 90;
taske. erDomestic = false;
TextView. tilføj (pos. kind + "," + taske, vægt + "," +
taske. daysAged + "," + taske. isDemestic + " n");
}
}
Med det andet konstruktoropkald i denne kode kommenteret, gør du ikke variablen
pose
til en ny genstand. I stedet økonomiserer du ved at tildele nye værdier til det eksisterende objekts felter.
I nogle situationer kan genbrug af en objekts felter være mere effektiv (hurtigere at udføre) end at skabe en ny genstand. Men når du har et valg, er det en god idé at skrive kode, der afspejler reelle data. Hvis indholdet af en faktisk taske ikke ændres fra cheddarost til blåost, ville det være bedre ikke at ændre et
BagOfCheese
objektfelt fra "
Cheddar
" til "
Blå
”.