我正在和一个朋友制作纸牌游戏,我决定制作一个纸牌查看器,我们将所有纸牌详细信息输入到一个文本文档中,我的程序逐行读取每张纸牌。
不同类型的卡片具有不同的属性,所有属性都以某种类型的枚举表示。
我有一些将字符串列表转换为枚举属性列表的代码。示例枚举:
public enum Race{
ELVES, HUMANS, DWARFS
}
public enum Rarity{
COMMON, UNCOMMON, RARE
}
假设一张卡可以有多个种族和多个稀有度我想制作一个可以获取字符串列表和枚举类型并返回枚举值列表的方法,例如
// Take in an array of strings and a type of Enum value to convert them to
public <Type extends Enum<Type>> Type[] getValues(String[] strings){
// Make an array to hold the enum values
Type[] values = new Type[strings.length];
// For each string, convert it into an enum value and add it to the array
for (int i = 0; i < strings.lenght; i++)
values[i] = Type.valueOf(strings[i]);
return values;
}
我知道这种方法不起作用,但我希望它至少能描述我正在尝试做的事情,我想要一个可以向其发送任何字符串列表并将它们转换为 EnumValues 列表的方法,例如将字符串 {"ELVES", HUMANS"} 转换为相关的 Race 值 {ELVES, HUMANS}。
你可能会问为什么我不只是制作单独的方法,比如
convertRaceStings(String[] strings){//method workings here}
convertRarityStings(String[] strings){//method workings here}
不幸的是,这里使用的两个枚举只是简单的例子,还有更多的枚举,每个都需要另一种方法。