我有一堆音乐符号的图像,我需要对其进行一些处理,并且对于每个图像,我都需要获取与其文件名相对应的整数代码。有 23 个可能的文件名字符串和 23 个整数代码,并且在不同的目录下有许多同名的图像。
我到目前为止的解决方案在下面给出(缩写)。我刚刚定义了一个int
和String
常量的负载,然后编写了一个方法,它只是一个巨大的if
语句链来进行翻译。
达到相同效果的更好方法是什么?我这样做的方式看起来真的很糟糕!我考虑过使用某种 . Map
,但我不确定最好的方法。
public class Symbol {
public static final int TREBLE_CLEF = 0;
public static final int BASS_CLEF = 1;
public static final int SEMIBREVE = 2;
// ...
public static final String S_TREBLE_CLEF = "treble-clef";
public static final String S_BASS_CLEF = "bass-clef";
public static final String S_SEMIBREVE = "semibreve";
// ...
public static int stringCodeToIntCode(String strCode) {
if (strCode == S_TREBLE_CLEF) {
return TREBLE_CLEF;
} else if (strCode == S_BASS_CLEF) {
return BASS_CLEF;
} else if (strCode == S_SEMIBREVE) {
return SEMIBREVE;
} //...
else {
return -1;
}
}
}