java 的 枚举类型 在Eclipse里面用enum报错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 的 枚举类型 在Eclipse里面用enum报错相关的知识,希望对你有一定的参考价值。

问题如题,显示“enum cannot be resolved to a type”。
部分代码如下:
import java.awt.*;
import java.awt.event.*;

public class Tank
public static final int XSPEED = 5;
public static final int YSPEED = 5;

private int x, y;

private boolean bL=false, bU=false, bR=false, bD = false;
enum Direction L, LU, U, RU, R, RD, D, LD, STOP;//此行枚举 报错!

private Direction dir = Direction.STOP;........
.......
我 的Eclipse 里的 preferences->java->compiler设置的是1.6,
preferences->java->Installed JREs 设置的也是安装的jre。都没错啊。我用的 jdk是1.6的没错啊。
问题出在哪里?直接在DOS下编译没有错。
忘高手指点 。

坦克大战是么...

你的jdk版本没有设置正确呢..
eclipse里,点 window-->preferenc-->Java-->Installed JREs
看是否选了5.0以上版本.
同层目录下,查看 Compiler选项,看Compiler compliance level 是不是1.4 以上

应该就OK了
参考技术A 写坦克大战吧?我也正在写,对照了下,枚举类型定义没错,应该是你的JRE有问题,因为枚举类型是1.5新加的类型,你用的可能是1.5之前的版本追问

在DOS下编译没有问题 所以我的JRE和JDK都没有问题。况且我用的是JDK1.6。Eclipse设置也没错 请看清楚我的描述再回答谢谢!

参考技术B enum Direction L, LU, U, RU, R, RD, D, LD, STOP;//此行枚举 报错!
要放到类的外头
参考技术C 怎么我编译没有错呢。。 参考技术D 没有错吧

Effective Java 读书笔记之五 枚举和注解

  Java1.5中引入了两个新的应用类型家族,新的类为枚举类型,新的接口为注解类型。

一、用enum代替int常量

  1、枚举值由一组固定的常量组成合法值的类型。

二、用实例域代替序数

  1、不要根据枚举的序数导出它关联的值,而是把它保存在一个实例域中。

三、用EnumSet代替位域模式

  1、如果有枚举类型需要用在集合中,EnumSet就是最好的工具。

四、用EnumMap代替序数索引功能

  1、EnumMap更加安全和可靠。

五、用接口模拟实现可伸缩的枚举

  1、可伸缩的枚举类型,一般不是一个好主意。

  2、让枚举类型实现接口达到用接口模拟可伸缩枚举的功能。

六、注解优先于命名模式

  1、注解和注解解析器应该完全取代命名模式的使用。

七、坚持使用Override注解

八、用标记接口定义类型

  标记接口胜过标记注解的两点是:

    a、标记接口定义的类型是由被标记类的实例所实现的;标记注解则没有这样的类型。

    b、标记接口可以被更加精确地进行锁定。

  如果需要给类或者接口定义类型,接口就是好的选择,其他情况下应该考虑注解。

 

以上是关于java 的 枚举类型 在Eclipse里面用enum报错的主要内容,如果未能解决你的问题,请参考以下文章

java中的枚举类型指的是啥啊?

Effective Java 读书笔记之五 枚举和注解

java枚举有啥不好

我java里的枚举不懂...

Java里的包,类,接口,枚举是啥意思

java中枚举常量的命名规范是怎样的