Вы не строго " должны " передать класс в конструктор .В некоторых случаях это ненужное неудобство для человека, создающего экземпляр вашего класса.
Все зависит от вашего интерфейса.
Если ваш интерфейс является просто потребителем элементов (и, учитывая, что вы входите в систему, я подозреваю, что это может быть), то вы можете сойти с рукленивый подсчет количества значений в тот момент, когда вы фактически потребляете элемент.
class LogLine<T extends Enum<T>>
{
public void add(T item)
{
int numberOfElementsInEnum = item.getDeclaringClass().getEnumConstants().length;
}
}
Нам нужно знать ваши требования и увидеть остальную часть вашей реализации LogLine
, чтобы сказать, подходит ли этот подходподходит.