我想打印第二个索引值,即SUMMER。
public class Filer
{
public enum Season { WINTER, SPRING, SUMMER, FALL }
public static void main(String[] args)
{
System.out.println(Season.values(2));//values don't take argument!!
}
}
怎么才能实现呢?
您可以通过键入所需的值来访问它们,例如,<代码>季节。冬季,呼唤季节。valueOf(“WINTER”),或在上迭代。values()
结果,并按照@Stultuske所述选择所需内容。
如果您搜索。values()
在类Enum中可能找不到它,因为此方法是由编译器添加的。检查此答案。
如果需要通过索引值访问枚举,只需使用季节。values()[someIndex],自。values()
返回数组。
在此处查找有关枚举的更多信息。
如果要在特定索引处获取枚举,请尝试:
Season.values()[index]
您的代码几乎可以正常工作。仔细查看枚举值的方法签名(文档)。
它不是接受参数的方法,而是返回整个数组。因此,您需要将方法之后的访问切换为数组访问:
Season.values()[2]
您应该避免按索引访问Enum
。它们取决于它们在代码中的顺序。如果您进行一些重构,例如“按字母顺序排序项目”:
public enum Season {
FALL, // 3 -> 0
SPRING, // 1 -> 1
SUMMER, // 2 -> 2
WINTER // 0 -> 3
}
或者稍后在不记住顺序相关代码的情况下向枚举中添加一些值,然后您将中断代码。相反,您可以设置映射
Map<Integer, Season> indexToSeason = new HashMap<>();
indexToSeason.put(0, Season.WINTER);
indexToSeason.put(1, Season.SPRING);
indexToSeason.put(2, Season.SUMMER);
indexToSeason.put(3, Season.FALL);
然后使用该地图进行访问:
public Season getSeasonByIndex(int index) {
return indexToSeason.get(index);
}
枚举具有名为'hash value'的属性,该属性是枚举内的索引。
问题内容: 我在Java中有一个枚举: 我想按索引访问枚举值,例如 我该怎么办? 问题答案: 试试这个
问题内容: 通过阅读SCJP书籍,我在第1章“自测”中发现了类似的内容: 注意:代码编译正常。我不明白的是为什么我们可以从变量访问DOG,CAT或FISH常量。我认为(并且也写在书中)DOG,FISH,CAT是常量,其实现方式类似于。 所以,如果它们确实是静态的,为什么我们可以从中访问它们呢?最后一行是我熟悉的方式。 问题答案: 写作 和写作一样。也就是说,编译器将用其编译时类型Animal替换变
我对Java很陌生,只是有点纠结于数组。我有一个代码块,我已经写了当遵循教程,但正在努力理解它,希望有人能解释给我。 null 对不起,如果这是一个琐碎的问题给你,但这是最好的地方,我可以想到转向。
问题内容: 我试图确定如何访问JObject中的数据,但我终生无法确定如何使用它。 我可以将其打印到执行Console.WriteLine(Object)的控制台中,然后看到数据,它看起来像: 但是我不知道如何迭代/枚举它,任何人都有想法吗?我现在很茫然。 问题答案: 如果您查看相关文档,将会发现它实现了。因此,您可以使用以下命令简单地对其进行迭代:
问题内容: 我试图在把手模板内的数组中指定项的索引: 使用这个: 如果上述方法不可行,我将如何编写一个可以访问数组中特殊项目的助手? 问题答案: 尝试这个: