Map<Long, Enum< ? extends SomeInterface>
を作成したいと思います。どちらが私にとって最良の選択ですか?chossingデータ構造の混乱
私はこの1つ
private Map<Long, Enum<? extends SomeInterface>[]> questionIdToanswersMapping = Collections.unmodifiableMap(Stream.of(
new SimpleEntry<>(QuestionEnum1.getQuestionId(), AnswerEnum1.values()),
new SimpleEntry<>(QuestionEnum2.getQuestionId(), AnswerEnum2.values()),
new SimpleEntry<>(QuestionEnum3.getQuestionId(), AnswerEnum3.values()),
new SimpleEntry<>(QuestionEnum4.getQuestionId(), AnswerEnum4.values()),
new SimpleEntry<>(QuestionEnum5.getQuestionId(), AnswerEnum5.values()))
.collect(Collectors.toMap((e) -> e.getKey(), (e) -> e.getValue())));
を試してみました。しかし、エラーが「Map<Object,Object>
からMap<Long,Enum<? extends SomeEnum>[]>
に変換することはできません」与えています。私はこれに新しいです。助けてください!
腐食可能な回答値に質問IDの変更不可能なマップが必要です。可能な答えを列挙
可能な回答は次のようにラップされている:あなたが希望を持つJava、使用インタフェースで相互に1つの列挙型を拡張することはできません
を:
public class RecognizedAnswers {
public enum AnswerEnum1 implements SomeInterface;
public enum Answer2 implements SomeInterface;
}
したがって、QuestionIdごとに同じanswerEnumセットがありますが、それらの違いは同じですか? – Beri
彼らは異なっています。各AnswerEnumはSomeEnumを拡張します – user3681970
しかし、それは要約しません。あなたの例では、答えの集まりがあり、その説明に従って、単一のQuestioIdを単一回答にマップする必要があります。 – Beri