Java 循环遍历枚举?

Java 循环遍历枚举?,java,loops,enums,Java,Loops,Enums,我正试图找到一种更好的方法来编写以下代码: public static void initTab(Player player) { player.getPacketSender().sendString(15002, "Achievements - " + amountCompleted(player, Difficulty.TOTAL) + "/30"); player.getPacketSender().sendString(15007, "Easy Tasks - " +

我正试图找到一种更好的方法来编写以下代码:

public static void initTab(Player player) {
    player.getPacketSender().sendString(15002, "Achievements - " + amountCompleted(player, Difficulty.TOTAL) + "/30");
    player.getPacketSender().sendString(15007, "Easy Tasks - " + amountCompleted(player, Difficulty.EASY) + "/10");
    player.getPacketSender().sendString(15008, getColor(player, 0, 0)+Achievements.Tasks.TASK1.getName());
    player.getPacketSender().sendString(15009, getColor(player, 1, 0)+Achievements.Tasks.TASK2.getName());
    player.getPacketSender().sendString(15010, getColor(player, 2, 0)+Achievements.Tasks.TASK3.getName());
    player.getPacketSender().sendString(15011, getColor(player, 3, 0)+Achievements.Tasks.TASK4.getName());
    player.getPacketSender().sendString(15012, getColor(player, 4, 0)+Achievements.Tasks.TASK5.getName());
    player.getPacketSender().sendString(15013, getColor(player, 5, 0)+Achievements.Tasks.TASK6.getName());
    player.getPacketSender().sendString(15014, getColor(player, 6, 0)+Achievements.Tasks.TASK7.getName());
    player.getPacketSender().sendString(15015, getColor(player, 7, 0)+Achievements.Tasks.TASK8.getName());
    player.getPacketSender().sendString(15016, getColor(player, 8, 0)+Achievements.Tasks.TASK9.getName());
    player.getPacketSender().sendString(15017, getColor(player, 9, 0)+Achievements.Tasks.TASK10.getName());
}
我正在考虑使用for循环来循环ID(15008、15009等等),但我不知道如何以相同的方式循环枚举值

我说的是:
成就.Tasks.TASK1.getName()

我有一个名为Tasks的枚举,下面是其中一些值的示例:

    TASK1(Difficulty.EASY, TaskType.GLOBAL, "Easy Test1", "Test Description.", 1, new int[]{8147, 8148}),
    TASK2(Difficulty.EASY, TaskType.GLOBAL, "Easy Test2", "Test Description.", 1, new int[]{8150, 8151}),
    TASK3(Difficulty.EASY, TaskType.GLOBAL, "Easy Test3", "Test Description.", 1, new int[]{8153, 8154}),
    TASK4(Difficulty.EASY, TaskType.GLOBAL, "Easy Test4", "Test Description.", 1, new int[]{8156, 8157}),
    TASK5(Difficulty.EASY, TaskType.GLOBAL, "Easy Test5", "Test Description.", 1, new int[]{8159, 8160}),
getName()获取值中的第一个字符串:“Easy Test1”

我想知道的是:一种循环遍历枚举值的简单方法,这样我就可以在几行代码中对所有值使用getName()方法

摘要

我需要重复这句话:

player.getPacketSender().sendString(15008,getColor(player,0,0)+成就.Tasks.TASK1.getName())

我需要知道的是如何循环:

成就.任务.任务#.getName()

这个问题不是重复的,因为我要求循环两件不同的事情。我需要同时循环遍历枚举和一个int(1500815009等)。不仅仅是枚举,也不仅仅是int。我可以将枚举的for循环嵌套在int的for循环中吗?

请参阅:
可以通过调用该类型的隐式公共静态T[]values()方法来获取枚举类型的所有常量。
如果这是你想要的,你可以这样做:

class EnumLoop {
  enum Color {RED, BLUE, GREEN};
  public static void main(String[] args) { 
    for (Color c : Color.values()) {
      System.out.println(c.name());
    }
  }
}
以下是。

请参见:
通过调用该类型的隐式公共静态T[]values()方法,可以获得枚举类型的所有常量。
如果这是你想要的,你可以这样做:

class EnumLoop {
  enum Color {RED, BLUE, GREEN};
  public static void main(String[] args) { 
    for (Color c : Color.values()) {
      System.out.println(c.name());
    }
  }
}
以下是。

请参见:
通过调用该类型的隐式公共静态T[]values()方法,可以获得枚举类型的所有常量。
如果这是你想要的,你可以这样做:

class EnumLoop {
  enum Color {RED, BLUE, GREEN};
  public static void main(String[] args) { 
    for (Color c : Color.values()) {
      System.out.println(c.name());
    }
  }
}
以下是。

请参见:
通过调用该类型的隐式公共静态T[]values()方法,可以获得枚举类型的所有常量。
如果这是你想要的,你可以这样做:

class EnumLoop {
  enum Color {RED, BLUE, GREEN};
  public static void main(String[] args) { 
    for (Color c : Color.values()) {
      System.out.println(c.name());
    }
  }
}


以下是.

这似乎是一个常见的用例,enum类可能有一个返回所有枚举的方法:)我只需使用#values()方法获取所有枚举值,然后迭代该数组。使用循环的索引(例如“i”)访问当前元素,并通过添加某个数字将其用于其他数字。它并不优雅,但可以工作。这似乎是一个常见的用例,enum类可能有一个方法返回所有enum:)我只需使用#values()方法获取所有enum值,然后迭代该数组。使用循环的索引(例如“i”)访问当前元素,并通过添加某个数字将其用于其他数字。它并不优雅,但可以工作。这似乎是一个常见的用例,enum类可能有一个方法返回所有enum:)我只需使用#values()方法获取所有enum值,然后迭代该数组。使用循环的索引(例如“i”)访问当前元素,并通过添加某个数字将其用于其他数字。它并不优雅,但可以工作。这似乎是一个常见的用例,enum类可能有一个方法返回所有enum:)我只需使用#values()方法获取所有enum值,然后迭代该数组。使用循环的索引(例如“i”)访问当前元素,并通过添加某物将其用于其他数字。它不优雅,但有效。我想您可能误解了。我需要重复这一行:
player.getPacketSender().sendString(15017,getColor(player,9,0)+成就.Tasks.TASK10.getName())
我要问的是如何循环遍历枚举值,例如:
acgregations.Tasks.TASK#.getName())
你是说你的枚举有一个
getName()
方法吗?比如?get name方法是不相关的,我只需要知道如何循环遍历值的名称,比如TASK1、TASK2、TASK3。不要一遍又一遍地叫getName,我想你可能误解了。我需要重复这一行:
player.getPacketSender().sendString(15017,getColor(player,9,0)+成就.Tasks.TASK10.getName())
我要问的是如何循环遍历枚举值,例如:
acgregations.Tasks.TASK#.getName())
你是说你的枚举有一个
getName()
方法吗?比如?get name方法是不相关的,我只需要知道如何循环遍历值的名称,比如TASK1、TASK2、TASK3。不要一遍又一遍地叫getName,我想你可能误解了。我需要重复这一行:
player.getPacketSender().sendString(15017,getColor(player,9,0)+成就.Tasks.TASK10.getName())
我要问的是如何循环遍历枚举值,例如:
acgregations.Tasks.TASK#.getName())
你是说你的枚举有一个
getName()
方法吗?比如?get name方法是不相关的,我只需要知道如何循环遍历值的名称,比如TASK1、TASK2、TASK3。不要一遍又一遍地叫getName,我想你可能误解了。我需要重复这一行:
player.getPacketSender().sendString(15017,getColor(player,9,0)+成就.Tasks.TASK10.getName())
我要问的是如何循环遍历枚举值,例如:
acgregations.Tasks.TASK#.getName())
你是说你的枚举有一个
getName()
方法吗?比如?get name方法是不相关的,我只需要知道如何循环遍历值的名称,比如TASK1、TASK2、TASK3。而不是一次又一次地调用getName