He creado una clase anónima en la que declaro algunas variables y métodos. Mi maestro de Java me dice que haga esto en privado. No veo cómo cambiar el modificador hace ninguna diferencia ya que estas variables y métodos son privados para la clase anónima de todos modos, por lo que prefiero no tener ningún modificador. ¿Quién tiene razón y qué tiene más sentido? Vea a continuación el código de ejemplo en el que no elijo ningún modificador para 'mapa' y 'convertir' en lugar de hacerlo privado.¿Variables/métodos privados en la clase anónima?
Collections.sort(list, new Comparator<String>(){
public int compare(String a, String b){
return convert(a).compareTo(convert(b));
}
Map<String, String> map = new HashMap<String, String>();
String convert(String s) {
String u = map.get(s);
if (u == null)
map.put(s, u = s.toUpperCase());
return u;
}
});
Me pregunto por qué hacer un tipo anónimo con este código en gran medida - no me parece particularmente legible. –
(Me gustaría señalar que 'String.toUpperCase' depende de la configuración regional que haya elegido la instancia de JVM. Generalmente, es una buena idea ser explícito con este tipo de cosas.) –
(Ah, y el 'map' field debería ser' final' también.) –