tengo una clase que define su propia enumeración de esta manera:¿Cómo se puede hacer referencia a mi me Java Enum sin especificar su tipo
public class Test
{
enum MyEnum{E1, E2};
public static void aTestMethod() {
Test2(E1); // << Gives "E1 cannot be resolved" in eclipse.
}
public Test2(MyEnum e) {}
}
Si especifico MyEnum.E1 que trabaja muy bien, pero me gustaría mucho al igual tenerlo como "E1". ¿Alguna idea de cómo puedo lograr esto, o tiene que definirse en otro archivo para que esto funcione?
CONCLUSIÓN: No he podido obtener la sintaxis correcta para la importación. Dado que varias respuestas sugirieron que esto era posible, voy a seleccionar el que me proporcionó la sintaxis que necesitaba y superé a los demás. Por cierto, una parte REALMENTE EXTRAÑA de esto (antes de que obtuviera la importación estática para trabajar), una declaración de cambio que había escrito que utilizaba la enumeración no permitía que la enumeración fuera prefijada por su tipo, todo el resto del código lo requería. Lastima mi cabeza
Con respecto al comportamiento "realmente extraño" en las sentencias switch: Java hace esto en todas las enumeraciones en una instrucción switch. Como sabe qué tipo está activando, piensan que no hay motivo para que vuelva a especificar el tipo en cada bloque de casos. http://download.oracle.com/javase/tutorial/java/javaOO/enum.html – StriplingWarrior
Supongo que lo que me llegó es que no permitiría el prefijo de tipo Enum. En cualquier otro lugar, se requiere el prefijo (si no se importa) u opcional. –
Estoy de acuerdo con usted en referencia a la incoherencia 'switch', hace que los programadores Java menos experimentados se rasquen la cabeza. – jmarkmurphy