Articles of enums

Obtenga el valor asociado de la enumeración sin interruptor / caja

Tengo una enumeración con algunos casos diferentes que son tipos diferentes, por ejemplo enum X { case AsInt(Int) case AsDouble(Double) } Puedo switch estos muy bien para recuperar el valor subyacente. Sin embargo, la instrucción switch es muy molesta al tratar de hacer que ejecute algún código para los otros casos que simplemente no me […]

Enumeraciones C / C ++: detectar cuando varios elementos se asignan al mismo valor

¿Hay alguna forma de tiempo de comstackción para detectar / prevenir valores duplicados dentro de una enumeración C / C ++? El problema es que hay varios elementos que se inicializan a valores explícitos . Fondo: Heredé un código C como el siguiente: #define BASE1_VAL (5) #define BASE2_VAL (7) typedef enum { MsgFoo1A = BASE1_VAL, […]

¿Cuál es el tipo subyacente de una enum c ++?

Esto puede haber sido respondido en otro lugar, pero no pude encontrar una respuesta adecuada. Tengo este código: enum enumWizardPage { WP_NONE = 0x00, WP_CMDID = 0x01, WP_LEAGUES = 0x02, WP_TEAMS = 0x04, WP_COMP = 0x08, WP_DIVISIONS = 0x10, WP_FORMULAS = 0x20, WP_FINISHED = 0x40, }; Lo cual es heredado y tengo que modificarlo agregando […]

¿Por qué Java no permite anular Iguales (Objeto) en un Enum?

Me di cuenta de que el siguiente fragmento … @Override public boolean equals(Object otherObject) { … } … no está permitido para un Enum, ya que el método equals(Object x) se define como final en Enum . ¿Por qué esto es tan? No puedo pensar en ningún caso de uso que requiera reemplazar los equals(Object) […]

¿Cómo burlarse de una clase enum singleton usando Mockito / Powermock?

No estoy seguro de cómo burlarse de una clase Enum singleton. public enum SingletonObject{ INSTANCE; private int num; protected setNum(int num) { this.num = num; } public int getNum() { return num; } Me gustaría poner getNum () en el ejemplo anterior, pero no puedo imaginarme cómo simular la clase SingletonObject real. Pensé que usar […]

¿Ventajas de la enumeración de Java sobre el viejo patrón “Typesafe Enum”?

En Java anterior a JDK1.5, el patrón “Typesafe Enum” era la forma habitual de implementar un tipo que solo puede tomar un número finito de valores: public class Suit { private final String name; public static final Suit CLUBS =new Suit(“clubs”); public static final Suit DIAMONDS =new Suit(“diamonds”); public static final Suit HEARTS =new Suit(“hearts”); […]

Diferencia entre Enum y Definir Declaraciones

¿Cuál es la diferencia entre usar una instrucción define y una instrucción enum en C / C ++ (y hay alguna diferencia al usarlas con C o C ++)? Por ejemplo, cuando debería uno usar enum {BUFFER = 1234}; encima #define BUFFER 1234

Número total de elementos definidos en una enumeración

¿Cómo puedo obtener la cantidad de elementos definidos en una enumeración?

Cómo hacer que gcc advierta sobre pasar una enumeración incorrecta a una función

gcc no parece producir una advertencia con el siguiente código. ¿Cómo puedo hacer que produzca una advertencia? typedef enum { REG8_A, REG8_B, REG8_C }REG8; typedef enum { REG16_A, REG16_B, REG16_C }REG16; void function(REG8 reg8) { } int main(void) { function(REG16_A); // Should warn about wrong enum }

¿Cómo prevenir valores duplicados en enum?

Me pregunto si hay alguna manera de evitar una enum con claves duplicadas para comstackr? Por ejemplo, esta enum continuación comstackrá public enum EDuplicates { Unique, Duplicate = 0, Keys = 1, Comstacktion = 1 } Aunque este código Console.WriteLine(EDuplicates.Unique); Console.WriteLine(EDuplicates.Duplicate); Console.WriteLine(EDuplicates.Keys); Console.WriteLine(EDuplicates.Comstacktion); Se imprimirá Duplicate Duplicate Keys Keys