Android Studio dice que "la variable local es redundante"

Estoy recibiendo una advertencia sobre muchos métodos que local variable is redundant .

Aquí hay un método de ejemplo:

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

Ahora PARECE, supongo, puedo hacer esto para arreglarlo:

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

Otro ejemplo:

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

Parece que esto podría ser:

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

O como se recomienda a continuación, incluso mejor!

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

¿Existe realmente una "mejor práctica" para esto? ¿Es una manera mejor que la otra? ¿O es sólo acerca de la legibilidad del código y nada más?

¿Existe realmente una "mejor práctica" para esto? ¿Es una manera mejor que la otra? ¿O es sólo acerca de la legibilidad del código y nada más?

Simplificado dijo: En su escenario es inútil. No es incorrecto, pero ¿por qué harías esto?

 ffTeacherListItem t = getItem(pos); String teacher = t.teacher; return teacher; 

Cuando se puede hacer lo mismo con:

 ffTeacherListItem t = getItem(pos); return t.teacher; 

O también usted puede hacer:

 return getItem(pos).teacher; 

Todo lo anterior hace lo mismo pero el segundo y tercer código es más limpio y siempre debe intentar escribir código limpio sin líneas y referencias inútiles 1 . También hay regla no escrita – Menos código, menos errores .

1 Esto es "ventaja" de lenguajes como C ++ que no tienen recolector de basura y usted es responsable de todos los objetos e instancias que va a crear (su liberación de la memoria, etc.). Así que estás pensando más antes de que decidas crear una nueva instancia de algún Objeto.

  • La cámara Android no funcionará. StartPreview falla
  • Compatibilidad de ActionBar con API 15
  • No se encontró ningún recurso que coincida con el nombre dado (en 'text' con el valor '@ string / continue_label')
  • ¿Cómo puedo convertir la cadena de const valor de clase int?
  • Envío de un SMS en Android
  • No se puede vincular a cocos2dx utilizando eclipse para android en OSX
  • ¿Cómo obtener la altura y el ancho del dispositivo en Runtime?
  • : App: dexDebug ExecException terminado con un valor de salida diferente de cero 2
  • No se puede obtener la respuesta de OkHttp.body.toString () para devolver una cadena
  • Buscar la vista de padre por id
  • ¿Cómo configuro mi SDK de Java al crear un proyecto de Android en IntelliJ?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.