@ GhostCat правильно, вы должны проанализировать перед реализацией.Для вашей конкретной ситуации я думаю, что перечисления могут быть полезны.Мне не совсем понятна ваша цель, но именно так я бы изначально подошел к ней.
И чтобы обобщить ее в вашем классе QuestionModel, я бы сначала создал интерфейс для описания любого возможного ответа.
interface AnswerInterface {
val value: String
}
Я бы использовал дженерики, расширяющие этот интерфейс, и тогда мой QuestionModel стал бы таким:
class QuestionModel<QuestionAnswer : AnswerInterface>(
var question: String,
vararg answers: QuestionAnswer
)
QuestionAnswer может быть любым классом, который реализует AnswerInterface, а varard означает, что у меня может быть любое количество экземпляров.как ответы.
Имея это в виду, мои ответы enum будут:
enum class PlanetAnswers(override val value: String) : AnswerInterface {
VENUS("Venus"),
MERCURY("Mercury"),
JUPITER("Jupiter")
}
Наконец, все взаимосвязано так:
val question1 = QuestionModel("One planet between Earth and Sun?", PlanetAnswers.VENUS, PlanetAnswers.MERCURY)
val question2 = QuestionModel("The 5th planet from the Sun?", PlanetAnswers.JUPITER)
У меня есть вопроси любое количество ответов, но все они должны быть из одного и того же перечисления.Я могу создать больше перечислений, а затем создавать больше вопросов с различным набором ответов.