【问题标题】:Cause of "class, interface, or enum expected" Java syntax error?“预期的类、接口或枚举”Java 语法错误的原因?
【发布时间】:2012-09-09 06:06:51
【问题描述】:

我从这一行得到错误“类、接口或枚举”。

image RenderList[] = new image[99];

image 是我创建的一个类。我阅读了许多教程/线程,询问如何制作一组对象,他们都同意这一行。我还缺少什么吗?

【问题讨论】:

  • @pst:我认为这应该是一个答案。

标签: java arrays syntax-error


【解决方案1】:

我确定这可行:

package cruft;

public class Image {

    private String name;

    public Image(String name) {
        this.name = name;
    }

    public static void main(String [] args) {
        Image [] images = new Image[args.length];
        int i = 0;
        for (String name : args) {
            images[i++] = new Image(name);            
        }
    }

    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder();
        sb.append("Image");
        sb.append("{name='").append(name).append('\'');
        sb.append('}');
        return sb.toString();
    }
}

【讨论】:

    【解决方案2】:

    如果那是导致错误的行,那么很简单,image 没有解析为类型(例如类)。 javacc 编译器还应该发出带有“^”的以下行,以准确指示该语句的哪个部分无效。 (记得在帖子中包含 full 编译器错误。)

    确保image 是该类真正 的名称(根据Java 命名约定,该类可能应称为Image),并且如果“图像”,则使用任何必需的导入类位于不同的命名空间中。如果编译器没有查看 JAR/".class"/".java" 文件的正确位置,也可能只是编译器找不到相应的“图像”类。

    提供更多上下文(例如“图像”类的定义和两个代码部分所在的命名空间)将导致明确的问题识别以及如何解决它。

    【讨论】:

      【解决方案3】:

      如果您是 Java 新手,最简单的方法是确保特定程序的所有类都在同一个目录中。也许您在另一个目录中创建了“图像”类。当编译器找不到它时,你只会得到你遇到的那种错误。这是我的学生常见的错误。

      正如几位受访者指出的那样,请记住给类名加上首字母大写,Image。编译器不在乎,但它是 Java 程序员的通用约定。

      【讨论】:

        【解决方案4】:

        您需要使用圆括号和方括号。

        image RenderList[] = new image()[99];

        应该可以的。

        【讨论】:

          猜你喜欢
          • 2016-04-09
          • 1970-01-01
          • 2015-01-13
          • 2014-09-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-03-28
          相关资源
          最近更新 更多