使用Java中的Enum和EnumMaps进行继承以创建声音包

使用Java中的Enum和EnumMaps进行继承以创建声音包,java,android,Java,Android,我正在尝试用Java为Android应用程序创建一个可通过设置热交换的声音包。我坚持的部分是强制新的声音包遵守合同并实现每个现有Enum的能力。例如: public enum AudioFX { ERROR, SUCCESS, NOT_FINISHED, TIMED_OUT, ITEM_NOT_SELECTED } 我将这些值映射到Android中的原始资源,如下所示: EnumMap<AudioFX,Integer VoicePack = new

我正在尝试用Java为Android应用程序创建一个可通过设置热交换的声音包。我坚持的部分是强制新的声音包遵守合同并实现每个现有Enum的能力。例如:

public enum AudioFX {
    ERROR,
    SUCCESS,
    NOT_FINISHED,
    TIMED_OUT,
    ITEM_NOT_SELECTED
}
我将这些值映射到Android中的原始资源,如下所示:

EnumMap<AudioFX,Integer VoicePack = new EnumMap<>(AudioFX.class);
VoicePack.put(AudioFX.ERROR, R.raw.voice_error);
VoicePack.put(AudioFX.SUCCESS, R.raw.voice_success);
VoicePack.put(AudioFX.NOT_FINISHED, R.raw.voice_not_finished);

EnumMap这里可能有一些静态代码分析工具可以提供帮助

什么肯定会起作用:一个通用的单元测试。您可以始终查询枚举的常量,然后“仅”必须确保通过通用单元测试检查每个EnumMap实例


意思是:您可以编写一个小的辅助工具实用程序来检查enum X的所有枚举常量是否都显示在EnumMap实例中

我注意到你的问题仍然是“开放的”:你没有接受答案。请看一看,然后决定是否要回答。或者让我知道是否有什么我可以做的,以加强我的投入,使其值得接受。接受帮助未来的读者确定问题是否得到解决,并对花时间回答你的人表示感谢。