enum Operation {
TURN_LEFT, TRUN_RIGHT, SHOOT; public static void doOperation(Operation operation) {
switch (operation) {
case TURN_LEFT:
System.out.println("向左转");
break;
case TRUN_RIGHT:
System.out.println("向右转");
break; case SHOOT:
System.out.println("射击");
break;
}
}
}public class OpConstant {
public static void main(String[] args) {
Operation.doOperation(Operation.SHOOT);
System.out.println(Operation.valueOf("SHOOT"));
System.out.println("--------------"); for (Operation operation : Operation.values()) {
// System.out.printf("%d, %s, %n", operation);
// System.out.printf("%d, %s, %n", operation);
System.out.printf("%d, %s, %n", operation); //这是第 12 行! }
}}Exception in thread "main" java.util.IllegalFormatConversionException: d != com.enumtest.Operation
at java.util.Formatter$FormatSpecifier.failConversion(Formatter.java:3999)
at java.util.Formatter$FormatSpecifier.printInteger(Formatter.java:2709)
at java.util.Formatter$FormatSpecifier.print(Formatter.java:2661)
at java.util.Formatter.format(Formatter.java:2433)
at java.io.PrintStream.format(PrintStream.java:920)
at java.io.PrintStream.printf(PrintStream.java:821)
at com.enumtest.OpConstant.main(OpConstant.java:12)哪里错了,帮忙看看···谢谢了

解决方案 »

  1.   

    System.out.printf("%d, %s, %n", operation); //这是第 12 行!
    这行代码这么写是什么意思?直接写:
    System.out.printf("%s,", operation);
      

  2.   

    你这问题是格式化错误。这一改下就行了。
    System.out.printf("%s, %n, %n", operation);
      

  3.   

    大哥,Java中 不是还可以接受 枚举类型的值么?
      

  4.   

    没有错吧,大哥,我只是在枚举中多定义方法而已,
    其实是System.out.printf...那里错,但是我不懂怎么改···
      

  5.   

    switch要定义类型而且貌似多了一个括号!