【发布时间】:2012-09-09 06:06:51
【问题描述】:
我从这一行得到错误“类、接口或枚举”。
image RenderList[] = new image[99];
image 是我创建的一个类。我阅读了许多教程/线程,询问如何制作一组对象,他们都同意这一行。我还缺少什么吗?
【问题讨论】:
-
@pst:我认为这应该是一个答案。
标签: java arrays syntax-error
我从这一行得到错误“类、接口或枚举”。
image RenderList[] = new image[99];
image 是我创建的一个类。我阅读了许多教程/线程,询问如何制作一组对象,他们都同意这一行。我还缺少什么吗?
【问题讨论】:
标签: java arrays syntax-error
我确定这可行:
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();
}
}
【讨论】:
如果那是导致错误的行,那么很简单,image 没有解析为类型(例如类)。 javacc 编译器还应该发出带有“^”的以下行,以准确指示该语句的哪个部分无效。 (记得在帖子中包含 full 编译器错误。)
确保image 是该类真正 的名称(根据Java 命名约定,该类可能应称为Image),并且如果“图像”,则使用任何必需的导入类位于不同的命名空间中。如果编译器没有查看 JAR/".class"/".java" 文件的正确位置,也可能只是编译器找不到相应的“图像”类。
提供更多上下文(例如“图像”类的定义和两个代码部分所在的命名空间)将导致明确的问题识别以及如何解决它。
【讨论】:
如果您是 Java 新手,最简单的方法是确保特定程序的所有类都在同一个目录中。也许您在另一个目录中创建了“图像”类。当编译器找不到它时,你只会得到你遇到的那种错误。这是我的学生常见的错误。
正如几位受访者指出的那样,请记住给类名加上首字母大写,Image。编译器不在乎,但它是 Java 程序员的通用约定。
【讨论】:
您需要使用圆括号和方括号。image RenderList[] = new image()[99];
应该可以的。
【讨论】: