【发布时间】:2015-02-25 15:02:17
【问题描述】:
美好的一天, 我在同一个目录中有两个类,Map 和 Field。我成功编译了 Field.java,但是当我编译 Map.java 时,我得到了这个:
Map.java:4: error: cannot find symbol
private Field[][] gameMap;
^
symbol: class Field
location: class Map
Map.java:61: error: cannot find symbol
public Field getFieldPosition(){
^
symbol: class Field
location: class Map
Map.java:8: error: cannot find symbol
gameMap = new Field[10][20];
^
symbol: class Field
location: class Map
3 errors
以下是两个类的代码:
public class Map {
private Field[][] gameMap;
private int row, col;
private int rowPlayer, colPlayer;
public Map(){//constructor
gameMap = new Field[10][20];
for(row=0;row<10;row++){
for(col=0;col<20;col++){
gameMap[row][col].setFieldUntilled();
}
}
rowPlayer = 0;
colPlayer = 0;
gameMap[rowPlayer][colPlayer].setPlayerLoc();
}
public Field getFieldPosition(){
return gameMap[rowPlayer][colPlayer];
}
}
对于 Field.java(如有必要):
public class Field {
private int playerLoc;
private char fieldType;
public Field(){//constructor
fieldType = 'u';
playerLoc = 0;
}
public void setFieldUntilled(){
fieldType = 'u';
}
public void setFieldTilled(){
fieldType = 't';
}
public void setPlayerLoc(){
playerLoc = 1;
}
public void removePlayerLoc(){
playerLoc = 0;
}
public int getPlayerLoc(){
return playerLoc;
}
}
我分别编译了 Field.java 和 Map.java: javac Field.java 没有返回任何错误,但是 javac Map.java 返回了上面的错误。
【问题讨论】:
-
你如何编译它们?在命令行上使用 javac Map.java 应该编译这两个文件(因为 Field 是 Map 的依赖项)。
-
@Jaroslaw 是的,我使用 javac Map.java,我得到了 3 个错误
-
向我们展示您项目的目录/文件布局。还向我们展示您编译时使用的完整命令,并告诉我们您从哪个目录运行它。还有一个问题:您的源文件不包含任何导入语句。你忽略了它们吗?还是没有?
-
@Seelenvirtuose 没有导入语句,因为两个文件都在同一个目录中。
-
@ProgramAllDay 他们也没有包声明?
标签: java class methods compiler-errors