1.Почему в конструктор объекта Enum нельзя передать значение позже (не в самом классе где он автоматически создается)?
2.Почему в енамах нет hashcode equals?
Используйте следующую запись:
Cat cat = Cat.Tom;
Если вы хотите добавить конструкторы, то их нужно объявлять неосредтсвенно в самом enum:
public enum Cat {
TOM(1),
BOB(2);
private int number;
Cat(int number) {
this.number = number;
}
public int getNumber() {
return number;
}
}
Вызывать конструкторы вне определения enum нельзя, так как грубо говоря enum - список именованых констант.
Другими словами, можете воспринимать enum как нечто вроде этого:
public final class Cat extends java.lang.Enum {
public final static Cat TOM = new Cat(1);
public final static Cat BOB = new Cat(2);
private int number;
private Cat(int number) {
this.number = number;
}
public int getNumber() {
return number;
}
}
По второму вопросу
Enum классы имеют hashCode и equals, просто их нельзя переопределить.
Можете убедится в этом вызвав:
int hash = Cat.TOM.hashCode();
и
boolean val = Cat.TOM.equals(Cat.BOB);
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Поскажите пожалуйста, можно ли упростить такой код? Или так и писать на 20 Case?
мое задание - написать имитацию тараканьих бегову меня есть такие классы: Game - основной класс, создает JFrame и принимает входной параметр (количество...
Есть число N, необходимо найти все уникальные числа до 0 до NНапример из чисел 123,132,213,231,312,321 уникальным будет только любое одно, но если N = 321, то скорее...