У меня есть класс Enum с двумя переменными: int id
и boolean collidable
. Есть ли способ создать конструктор, который принимает только первую переменную и правильно заполняет вторую? Обратите внимание, что первая переменная класса - это идентификатор, и он отличается для каждого значения типа Enum.
public enum TileID {
Grass(1,false),
GrassTall(2,false),
GrassFlower1(3,false),
GrassFlower2(4,false),
Water(5,false),
GrassTwig(6,true),
GrassRock(7,true);
private final int id;
private final boolean collidable;
TileID(int id, boolean collidable) {
this.id = id;
this.collidable = collidable;
}
public int getId() {
return id;
}
public boolean isCollidable() {
return collidable;
}
}
Изменить:
Я хотел знать, есть ли способ получить прямой доступ к значению, соответствующему заданному идентификатору, но я думаю, что его нет. Я нашел этот метод в другом посте и думаю, что сделаю это вместо него.
public static TileID valueOf(int id) {
return Arrays.stream(values())
.filter(legNo -> legNo.id == id)
.findFirst().orElse(null);
}
Спасибо всем, кто помог.