Android Studio dit " variable Locale est redondant

J'obtiens un message d'avertissement sur le grand nombre de méthodes qui local variable is redundant.

Voici un exemple de méthode:

public MyObject getMSListItem(int pos) {
    MyObject li = getItem(pos);
    return li;
}

Maintenant, il SEMBLE, je suppose que je peux faire pour résoudre ce problème:

public MyObject getMSListItem(int pos) {
    return  getItem(pos);
}

Un autre exemple:

public String getTeacher(int pos) {
    ffTeacherListItem t = getItem(pos);
    String teacher = t.teacher;
    return teacher;
}

Semble que ce pourrait être:

public String getTeacher(int pos) {
    ffTeacherListItem t = getItem(pos);
    return t.teacher;
}

OU comme recommandé ci-dessous, c'est encore mieux!

public String getTeacher(int pos) {
    return  getItem(pos).teacher;
}

Est-il vraiment une "meilleure pratique" pour cela? Est une façon meilleure que l'autre? Ou est-ce juste au sujet de la lisibilité du code et rien de plus?

  • Eh bien, votre IDE est certainement ce que pense c'est une bonne pratique 🙂
  • return getItem(pos).teacher
  • Oui, et la façon dont il vous dit de faire est correcte. Il n'y a pas de raison de créer une copie de quelque chose quand vous pouvez juste retour de cette instance.
  • ce n'est pas une copie. Il s'agit simplement d'un nom de référence, au lieu d'avoir un anonyme de référence.
  • la suppression de la redondance est uniquement cosmétique. Cela ne change rien à votre code. Mais moins de lignes est toujours bon quand il n'y a pas de complexité ajoutée.
  • Aussi, éviter d'avoir des variables temporaires avec insensée noms. t ou li ne dit rien à propos de ce que cet objet est en train de faire (ce qui est logique puisque c'est ne rien faire.)
  • Je pense que la meilleure réponse à cette question. Rien n'est changé à la fin en dehors de nettoyeur de code.
  • c'est bon à savoir, je dois avoir mal compris que dans l'apprentissage de java. Je pensais que MyObject li = getItem(pos) une copie de l'objet référencé, tandis que, si li avait déjà été créée il serait un nom de référence.
  • Retrait de la redondante variable locale est une "meilleure pratique" en raison d'une meilleure lisibilité. Il n'est pas non plus-ou en tant que votre question suggère.
  • Je pense que ma confusion, et @njkz2 peut-être que vous pouvez aider, c'est que le nom de variable de référence devront être instancié si c'est passé comme une variable à une méthode. Qu'est ce qui permet à des valeurs transmises à des méthodes pour être modifié dans la mémoire. Non?