-4

我有一个名为的类Bird,它由 3 个字符串字段组成,每个字段都是不同语言的名称,例如Bird.lang1, Bird.lang2, Bird.lang3。我有一个名为 Bird 的实例allbirds

现在我想制作一个ListOfAllBirds包含所有鸟类名称的字符串列表,使用用户选择的语言,存储在lang变量中,其值为lang1, lang2,之一lang3。我需要这样做数百次(调用这个次数N)。

当然,我可以对所有 Bird 元素进行迭代,并将相应的字段添加到lang. 但这意味着3 x N x Bird.size()(即数十万!!)条件查询来测试用户选择的语言。

我可以做类似的事情吗

varfield = lang.toField();
for (Bird birdy : allbirds)
    ListOfAllBirds.add(birdy.varfield);

也就是说,我可以引用带有变量的字段吗?这将为我节省大量的条件查询!

谢谢!

4

1 回答 1

1

我使用字符串数组的意思是这样的(如果您不想按照 Vulcan 的建议将语言设置更改为 int)。

String chosenLanguage = "Language 2";
int languageIndex = -1;
switch(chosenLanguage)
{
    case "Language 1": 
        languageIndex = 0;
        break;
    case "Language 2":
        languageIndex = 1;
        break;
    case "Language 3":
        languageIndex = 2;
        break;
    default:
        languageIndex = 0;
        break;
}

for (Bird birdy : allbirds)
       ListOfAllBirds.add(birdy.names[languageIndex]);

您的课程将如下所示:

class Bird
{
    public String[] names = {"name1", "name2", "name3"};
}

代替

class Bird
{
    public String lang1 = "name1";
    public String lang2 = "name2";
    public String lang3 = "name3";
}

这样,您只需检查一次用户选择的语言(以查找索引),然后您可以遍历所有鸟类并根据索引获得正确的名称。

于 2012-12-09T00:57:36.420 回答