Почему бы не взять перечисления из класса и создать автономный файл перечислений, в котором для всей обработки используется только второй (файл с RES_128)?
Редактировать 1
Ваш комментарий:
Потому что не все классы должны иметь одинаковые константы. Некоторые должны иметь только 32 и 64, в то время как другие должны иметь 32, 64 и 128
На самом деле существует только один «тип» Резолюции, и это говорит о том, что должно быть только одно перечисление Резолюции, но проблема заключается в том, что не все классы принимают все резолюции. Одним из возможных решений является использование одного перечисления для представления всех разрешений, но с EnumMap для разных классов, при этом некоторые классы отмечают разрешение false или значение, недопустимое для этого класса.
Редактировать 2
Или даже просто иметь HashSet принятых перечислений.
Редактировать 3
например, используя HashSet
class Foo002 {
public static Set<Resolution> allowedResolution = new HashSet<Resolution>();
static {
allowedResolution.add(Resolution.RES_32);
allowedResolution.add(Resolution.RES_64);
}
private Resolution resolution;
public void setResolution(Resolution resolution) {
if (!(allowedResolution.contains(resolution))) {
throw new IllegalArgumentException("Disallowed Resolution: " + resolution);
}
this.resolution = resolution;
}
}
enum Resolution {
RES_32 (32),
RES_64 (64),
RES_128 (128);
private final int asInt;
private Resolution(int asInt) {
this.asInt = asInt;
}
public int getIntValue() {
return asInt;
}
};