enums ×15
Создан 03.01.2025
0
голоса
2
ответов
17
просмотров
Являются ли имена перечислений (enum) в Java интернированными?

Проблема: Интернирование имен enum в Java

Я хочу узнать, интернированы ли имена перечислений (enum) в Java. То есть, гарантируется ли, что выражение enum1.name() == enum2.name() вернет true, если имена двух перечислений совпадают?

Также интересует, безопасно ли сравнивать значение,...

0
голоса
5
ответов
18
просмотров
Jackson: Сериализация и десериализация значений enum в виде целых чисел

Я создаю приложение на Java и у меня возникла проблема с сериализацией перечислений в формате JSON. У меня есть следующий enum и класс:

public enum State {
    OFF,
    ON,
    UNKNOWN
}

public class Machine {
    String name;
    int numCores;
    State state;

    public Machine(String...
0
голоса
5
ответов
15
просмотров
Хорошая ли практика использовать порядковый номер enum?

У меня есть перечисление (enum):

public enum Persons {

    CHILD,
    PARENT,
    GRANDPARENT;

}

Есть ли какие-либо проблемы с использованием метода ordinal() для проверки "иерархии" между членами перечисления? Я имею в виду - есть ли какие-то недостатки при использовании этого...

0
голоса
3
ответов
15
просмотров
Сравнение: values() у Enum с длиной приватного поля

У меня есть перечисление, как показано ниже:

public enum Configuration {
    XML(1),
    XSLT(10),
    TXT(100),
    HTML(2),
    DB(20);

    private final int id;
    private Configuration(int id) {
        this.id = id;
    }
    public int getId() { return id; }
}

Иногда мне нужно...

0
голоса
2
ответов
14
просмотров
C++: Как использовать одни и те же имена членов перечисления в разных перечислениях без ошибки переопределения?

У меня есть файл конфигурации, который я включаю во все свои файлы. В нем содержатся различные перечисления (enums), но в каждом перечислении имеются одинаковые названия элементов. Например, вот как выглядит config.h:

enum GameObjectType
{
     NINJA_PLAYER
};

enum...
0
голоса
3
ответов
18
просмотров
Можно ли вручную определить преобразование для класса enum?

Описание проблемы:

Я хочу определить каст для enum class, чтобы можно было использовать его в условиях, аналогично тому, как это делается для классов, через явное преобразование типов. Например, у меня есть следующий класс:

class Test {
public:
  explicit operator bool() { return...
6
голоса
5
ответов
55
просмотров
Что такое перечисления (enums) и в чем их полезность?

Я сегодня просматривал вопросы на StackOverflow и наткнулся на упоминание об использовании enum в шаблоне singleton, где говорилось о предполагаемых преимуществах для потокобезопасности такого решения.

Я никогда раньше не использовал enum, хотя программирую на Java уже более двух лет. Вижу, что...

6
голоса
5
ответов
29
просмотров
Можно ли наследовать перечисления для добавления новых элементов?

Я хочу взять уже существующий enum и добавить в него новые элементы следующим образом:

enum A {a, b, c}

enum B extends A {d}

/*B = {a, b, c, d}*/

Возможно ли это сделать в Java?

7
голоса
5
ответов
46
просмотров
Почему enum class считается более безопасным в использовании, чем обычный enum?

Я слышал, что некоторые люди рекомендуют использовать перечисления (enum classes) в C++ из-за их типобезопасности.

Но что это на самом деле означает?

9
голоса
5
ответов
47
просмотров
Цикл for для перебора enum в Java

Я работаю с перечислением (enum) в Java, которое содержит кардинальные и промежуточные направления:

public enum Direction {
   NORTH,
   NORTHEAST,
   EAST,
   SOUTHEAST,
   SOUTH,
   SOUTHWEST,
   WEST,
   NORTHWEST
}

Мне нужно написать цикл for, который будет перебирает каждое...

7
голоса
5
ответов
39
просмотров
Как получить имена элементов перечисления (enum)?

Я хочу перебрать объект enum в TypeScript и получить имена каждого перечисляемого символа. Например, у меня есть следующий enum: enum myEnum { entry1, entry2 } Я решил использовать цикл for-in, чтобы пройтись по элементам: for (var entry in myEnum) { // здесь нужно использовать имя entry,...

8
голоса
5
ответов
39
просмотров
Как идиоматично представлять перечисления (enum) в Go?

Я пытаюсь представить упрощенную хромосому, которая состоит из N оснований, каждое из которых может быть только одним из {A, C, T, G}.

Я хотел бы формализовать ограничения с помощью перечисления (enum), но меня интересует, какой самый идиоматичный способ эмуляции перечислений в языке Go.

22
голоса
4
ответов
76
просмотров
Сравнение членов enum в Java: использовать == или equals()?

Я знаю, что в Java перечисления (enum) компилируются в классы с приватными конструкторами и набором публичных статических членов. При сравнении двух экземпляров заданного перечисления я всегда использовал метод .equals(), например:

public void useEnums(SomeEnum a) { ...

14
голоса
5
ответов
58
просмотров
JavaScriptSerializer - Сериализация JSON перечислений в виде строк

У меня есть класс, который содержит свойство типа enum, и при сериализации объекта с использованием JavaScriptSerializer, результат в формате JSON содержит целочисленное значение перечисления, а не его строковое "имя". Есть ли способ получить значение перечисления в виде строки в JSON без...

11
голоса
5
ответов
47
просмотров
Как представить 'Enum' в Python?

Описание проблемы:

Я в основном разработчик на C#, но в данный момент работаю над проектом на Python.

Как можно представить эквивалент перечисления (Enum) в Python? Я хочу узнать, какой подход лучше всего подходит для реализации аналогичной функциональности перечислений, которые доступны в...