Я хотел бы создать общий класс данных c с именем «EnumTuple», который хранит натуральное количество различных элементов Enum из различных классов Enum вместе в одном кортеже. Допустим, у меня есть три класса Enum:
public Enum Gender {
FEMALE, MALE, OTHER
}
public enum Age {
YOUNG, MIDDLEAGED, OLD
}
public enum Personality {
EXTROVERT, INTROVERT
}
Я бы хотел создать экземпляр класса EnumTuple следующим образом:
EnumTuple person1 = new EnumTuple<Gender, Age, Personality>(Gender.OTHER, Age.MIDDLEAGED, Personality.EXTROVERT);
EnumTuple person2 = new EnumTuple<Personality, Gender>(Personality.INTROVERT, Gender.FEMALE);
EnumTuple person3 = new EnumTuple<Age>(Age.OLD);
Но я понятия не имею, как туда добраться или если вообще возможно написать такой класс данных в Java или Kotlin для начала, потому что похоже, что каждый класс может иметь только фиксированное число обобщенных c типов.
Для любопытных Я пытаюсь реализовать чистую и общую версию алгоритма исключения кандидатов (https://artint.info/html/ArtInt_193.html), в которой набор входных функций - это тот набор элементов перечисления, который я пытаюсь разработать.
И, наконец, если у вас есть обходной путь для меня под рукой или вы знаете другой язык программирования, который поддерживает переменное число обобщенных c типов, пожалуйста, дайте мне знать