这个程序看不懂,寻高人出来详解!!

借我那把枪吧 2010-01-09 07:38:03
程序如下:
public class EnumCompareTo {
public static void main(String[] args) {
compareToAction(Action.valueOf(args[0]));
}

public static void compareToAction(Action inputAction) {
System.out.println("输入:" + inputAction);
for(Action action : Action.values()) {
System.out.println(action.compareTo(inputAction));
}
}
}

这个程序编译报错N多,每行的意思也不懂,还望高人指点,帮助小弟度过难关,不胜感激!!
...全文
209 17 打赏 收藏 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
py330316117 2010-01-10
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 dudongxiao 的回复:]
首先,使用枚举类和这样的 for(Action action : Action.values()) 循环好保证JDK1.5及以上版本才支持。

该程序的含义是:比较启动时带入的程序参数,是否属于枚举类。
我编译运行了下,在启动时,带入TURN_LEFT,则输出如下:

输入:TURN_LEFT
0
1
2

[/Quote]

头一次见,学习了
TzSword 2010-01-10
  • 打赏
  • 举报
回复
楼主将你的程序这么改
枚举类Action

package 蜗牛;

public enum Action {
TURN_LEFT,
TRUN_RIGHT,
TURN_MIDDLE
}


枚举转换类EnumCompareTo


package 蜗牛;
public class EnumCompareTo {
public static void main(String[] args) {
compareToAction(Action.values()[0]); //这里注意一下...你的会抱数组越界异常
}

public static void compareToAction(Action inputAction) {
System.out.println("输入:" + inputAction);
for(Action action : Action.values()) {
System.out.println(action.compareTo(inputAction));
}
}
}

执行结果

输入:TURN_LEFT
0
1
2
TzSword 2010-01-10
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 dudongxiao 的回复:]
首先,使用枚举类和这样的 for(Action action : Action.values()) 循环好保证JDK1.5及以上版本才支持。

该程序的含义是:比较启动时带入的程序参数,是否属于枚举类。
我编译运行了下,在启动时,带入TURN_LEFT,则输出如下:

输入:TURN_LEFT
0
1
2

[/Quote]
会抱错的..........
qiao165 2010-01-10
  • 打赏
  • 举报
回复
没头没尾的
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zhangsong1st 的回复:]
sorry,刚找到那个Action,原来是个接口,贴上:
public enum Action {
      TURN_LEFT,
      TRUN_RIGHT,
      TURN_MIDDLE
}
这样,小弟我还是看不懂,谁叫我是菜鸟呢,还望各位老大能多言几句,最好能把整个程序解释下,谢谢了啊,大家能说多少说多少,知道多少说多少,多少都会对小弟有启发的,小弟在此先谢谢众位大侠啦!!!
[/Quote]
是个枚举呢
dudongxiao 2010-01-09
  • 打赏
  • 举报
回复
首先,使用枚举类和这样的 for(Action action : Action.values()) 循环好保证JDK1.5及以上版本才支持。

该程序的含义是:比较启动时带入的程序参数,是否属于枚举类。
我编译运行了下,在启动时,带入TURN_LEFT,则输出如下:

输入:TURN_LEFT
0
1
2
imasmallbird 2010-01-09
  • 打赏
  • 举报
回复
对于现在贴出来的代码就是
从控制台输入一个参数得到对应的枚举值
然后通过调用compareToAction方法得到你所输入的是那一个枚举值

你把提示你的编译错误贴出来~
py330316117 2010-01-09
  • 打赏
  • 举报
回复
for(Action action : Action.values())
头一次见过这么写for each循环的,还用类做循环?

不用ide就只能编编hello world 这样的小程序了。。。。。
借我那把枪吧 2010-01-09
  • 打赏
  • 举报
回复
错啦 ,更正Action是个枚举类
借我那把枪吧 2010-01-09
  • 打赏
  • 举报
回复
sorry,刚找到那个Action,原来是个接口,贴上:
public enum Action {
TURN_LEFT,
TRUN_RIGHT,
TURN_MIDDLE
}
这样,小弟我还是看不懂,谁叫我是菜鸟呢,还望各位老大能多言几句,最好能把整个程序解释下,谢谢了啊,大家能说多少说多少,知道多少说多少,多少都会对小弟有启发的,小弟在此先谢谢众位大侠啦!!!
liu_liyang 2010-01-09
  • 打赏
  • 举报
回复
再说了。报了很多错。但是错误的提示。你却没有贴出来。怎么解决?
liu_liyang 2010-01-09
  • 打赏
  • 举报
回复
记事本呀。。不知道该说你是很厉害呢。还是说你什么呢。。
怎么说也得先用下环境编译吧 。
估计是那个Action类没找到。。放到同一个记事本中吧。这个类就是程序的切入口。这里面是看不出什么的。因为,你调用了别的类里的东西。。把东西贴全
xl_at 2010-01-09
  • 打赏
  • 举报
回复
首先 我是菜鸟 个人愚见
Action这个类没有 肯定会出错啊
你分析下代码啊 理解下代码干嘛用的
Action.valueOf(args[0]) 很显然返回的 是1个Action实例
System.out.println("输入:" + inputAction); inputAction 应该默认调用了toString()方法吧;
for(Action action : Action.values()) 这里能看出 Action应该有1静态属性 假设是 Action[] a,
遍历a 执行 逐个执行compareTo(inputAction)
至于Action compareTo() 怎么写的 不知道 你可以猜测下
如果没有 Action 类的话 ,其实 你完全可以直接实现这个Action类
借我那把枪吧 2010-01-09
  • 打赏
  • 举报
回复
我没有用也不会用Myeclipse,我是在记事本里编辑的,谢谢继续回答
阿_布 2010-01-09
  • 打赏
  • 举报
回复
在myeclipse里面选中Action,ctrl+shift+m
借我那把枪吧 2010-01-09
  • 打赏
  • 举报
回复
Action这个类在哪呢,我没有发现啊
rumlee 2010-01-09
  • 打赏
  • 举报
回复
这个很简单,你的程序主要部分都在Action这个类里面,所以你这里看不到什么的。

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧