У меня вопрос, когда следует использовать Enum и когда мы должны использовать конечные константы?
Я знаю, что это обсуждалось в Enums и Constants. Что использовать, когда? хотя это вопрос С#.
Мой вопрос: почему Android использует так много констант, а не Enum? Например, Context
На мой взгляд, если мы используем константы, может быть риск, что ниже: если мы определим константу LEVEL, что
public static final int LEVEL_LOW=1;
public static final int LEVEL_MEDIUM=2;
public static final int LEVEL_HIGH=3;
когда мы передаем параметр int = 4. он не будет компилировать ошибку, и если мы пройдем число 1, читатель кода может не легко узнать, что это значит.
Но Enum может решить эту проблему, хотя это может вызвать дополнительные накладные расходы, поскольку это Object.
Итак, почему Android использует константы вместо Enum? Есть ли какой-либо принцип, что когда мы должны использовать константы или Enum в таком случае?