¿Cuál es la mejor práctica para especificar indicadores en un método Java?Práctica recomendada para usar indicadores en el método Java
que he visto SWT usando int como campos de bits, como:
(ejemplo parcialmente de "Effective Java, 2ª Ed.", Página 159):
public class Text {
public static final int STYLE_BOLD = 1 << 0; // 1
public static final int STYLE_ITALIC = 1 << 1; // 2
void printText(String text, int flags) {
}
}
y su llamada del cliente se ve como:
printText("hello", Text.STYLE_BOLD | Text.STYLE_ITALIC);
..pero esto se desanima que pueda banderas mixtos (valores int) de diferentes clases juntos sin ninguna comprobación de compilador.
En el mismo libro ("Effective Java"), veo el uso de EnumSet, pero entonces su llamada del usuario se convierte en:
printText("hello", EnumSet.of(Style.Bold, Style.ITALIC));
Me parece un poco prolijo y prefiero la elegancia de SWT.
¿Hay alguna otra alternativa o es básicamente los dos gustos que debe elegir?
Creo que te refieres a 'STYLE_ITALIC = 1 << 1'. –
@Victor ¡Creo que es una gran demostración de un problema común con el enfoque de campo de bits! – Anonymoose
Sí, de hecho lo es. :) –