acabo de descubrir las clases locales en Java:¿Cuándo debería usar una clase local en Java?
public final class LocalClassTest
{
public static void main(final String[] args) {
for(int i = 10; i > 0; i--) {
// Local class definition--declaring a new class local to the for-loop
class DecrementingCounter {
private int m_countFrom;
public DecrementingCounter(final int p_countFrom) {
m_countFrom = p_countFrom;
}
public void count() {
for (int c = m_countFrom; c > 0; c--) {
System.out.print(c + " ");
}
System.out.println();
}
}
// Use the local class
DecrementingCounter dc = new DecrementingCounter(i);
dc.count();
}
}
}
me llegó a través de este comentario: Advantages of Local Classes que se enumeran algunas grandes ventajas de las clases locales sobre las clases internas anónimas.
Mi pregunta es, no parece que haya muchos casos en los que esta técnica tenga ventajas sobre las clases internas NO anónimas. Lo que quiero decir es: usarías una clase local si tu clase solo es útil dentro del alcance de un método. Pero cuando sus métodos llegan al punto en que son tan complejos que necesita comenzar a definir clases personalizadas dentro de ellos, probablemente ya sean demasiado complejos y deban dividirse. En ese momento, tu clase local debería convertirse en una clase interna, ¿verdad?
¿Cuáles son algunos ejemplos de cuándo las clases locales son más deseables que las clases internas, que no involucran métodos supercomplejos (que deben evitarse)?
AAHHHHH ... me duelen los ojos. :) – limc
clase local declarada en el ciclo ???? ¿estas loco? No tiene que hacer eso ya que su clase no accede a ninguna de las variables locales de los bucles. Esta clase puede ser incluso externa fácilmente –
@eugener: Bueno, supongo que debería declararse fuera del ciclo, pero es un ejemplo artificial que igualmente parece absurdo ... –