Android Studio heißt "Lokale variable ist überflüssig'
Bin ich immer eine Warnung auf viele Methoden, die local variable is redundant
.
Hier ist eine Beispiel-Methode:
public MyObject getMSListItem(int pos) {
MyObject li = getItem(pos);
return li;
}
Nun SCHEINT es, ich nehme an, ich kann dies tun, um es zu beheben:
public MyObject getMSListItem(int pos) {
return getItem(pos);
}
Anderes Beispiel:
public String getTeacher(int pos) {
ffTeacherListItem t = getItem(pos);
String teacher = t.teacher;
return teacher;
}
Scheint, das könnte sein:
public String getTeacher(int pos) {
ffTeacherListItem t = getItem(pos);
return t.teacher;
}
ODER wie unten empfohlen, noch besser!
public String getTeacher(int pos) {
return getItem(pos).teacher;
}
Ist es wirklich ein "best practice" für diese? Ist ein Weg besser als der andere? Oder geht es nur um die Lesbarkeit des Codes, und nichts mehr?
Gut, Ihre IDE-sicherlich denkt, es ist eine gute übung 🙂
Ja, und die Art, wie Sie erzählt, dass Sie korrekt ist. Es gibt keinen Grund, um eine Kopie von etwas, wenn Sie nur können, dass die Rückkehr Instanz.
es ist nicht eine Kopie. Es ist lediglich eine benannte Referenz statt einer anonymen Referenz.
die Redundanz zu entfernen, ist nur Kosmetik. Es ändert sich auch nichts an Ihrem code. Aber weniger Zeilen ist immer gut, wenn es keine Komplexität Hinzugefügt.
return getItem(pos).teacher
Ja, und die Art, wie Sie erzählt, dass Sie korrekt ist. Es gibt keinen Grund, um eine Kopie von etwas, wenn Sie nur können, dass die Rückkehr Instanz.
es ist nicht eine Kopie. Es ist lediglich eine benannte Referenz statt einer anonymen Referenz.
die Redundanz zu entfernen, ist nur Kosmetik. Es ändert sich auch nichts an Ihrem code. Aber weniger Zeilen ist immer gut, wenn es keine Komplexität Hinzugefügt.
InformationsquelleAutor KickingLettuce | 2014-04-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vereinfacht gesagt: In Ihrem Szenario ist es nutzlos. Es ist nicht falsch, aber warum würden Sie dies tun:
wenn Sie können, tun Sie dasselbe mit:
oder auch Sie tun können:
Alle oben gleiche, aber die zweite und Dritte code wird sauberer und Sie sollten immer versuchen, zu schreiben sauberen code ohne unnötige Linien und Verweise1. Es gibt auch ungeschriebene-Regel - Weniger code, weniger Fehler.
1Das ist der "Vorteil" von Sprachen wie C++, die nicht über garbage-collector und Sie sind verantwortlich für alle Objekte und Instanzen erstellen Sie (Ihre die Freigabe von Speicher, usw.). So dass Sie denken mehr, bevor Sie sich entscheiden, erstellen Sie eine neue Instanz von einem Objekt.
getItem().getTeacher().getClass().getStudents()
haben, und diese Zeile löst eineNullPointerException
Sie haben keine Ahnung, welche der drei zurückgegebennull
.Das problem geht weiter als nur NPE. Erhalten Sie null Einblick in die Codeausführung für zukünftige Debuggen. Deklarieren von Variablen gibt Ihnen etwas zu schauen, wenn etwas schief geht. Sonst müssen Sie doppelt auswerten einer Funktion mit einer Uhr. Da wir in Java, das bedeutet, mögliche Nebenwirkungen, was bedeutet, dass möglicherweise verwirrende Dinge, die das Debugging noch härter!
InformationsquelleAutor Simon Dorociak