Мне нужно определить интерфейс, который переопределяет что-то вроде хэш-набора.
Итак, у меня есть методы типа get (байт-ключ). Поскольку я не могу использовать описательные ключи, такие как String, я ищу общий способ определения ключей, доступных в рамках некоторой реализации интерфейса. Я думаю об использовании enum для этого. Но возможно ли форсировать определение такого Enum в Интерфейсе?
Чтобы прояснить, что я имею в виду, давайте рассмотрим пример класса, реализующего Интерфейс:
public class ByteHashsetImpl implements ByteHashset {
public enum Key {
STATE_A,
STATE_B,
STATE_C;
}
public enum Value {
VALUE_A,
VALUE_B,
VALUE_C;
}
public void get(Key k) {
/**/
}
}
Я хочу убедиться, что каждая реализация определяет и использует свои собственные перечисления, называемые ключом и значением. Это позволило бы получить доступ к ключу / значениям, используя что-то вроде ByteHashsetImpl.Key
для каждой реализации интерфейса.
Возможно ли это вообще или есть еще один вариант, помимо неформального определения, например, кодирования?