我目前正在尝试在格式化文件中阅读我正在制作的迷宫游戏。然而,每当我尝试编译时,它都声明它找不到符号并指向try块内的parseInts。我导入了java.lang.Integer
。有谁理解为什么Java拒绝这样做?
private Room[][] readRooms(String filepath) throws IOException
{
int numberOfRooms;
int numRows;
int numCols;
Room[][] grid;
try
{
FileReader fr = new FileReader(filepath);
BufferedReader br = new BufferedReader(fr);
String next = null;
numberOfRooms = parseInt(br.readLine());
numRows = parseInt(br.readLine());
numCols = parseInt(br.readLine());
grid = new Room[numRows][numCols];
while((next = br.readLine()) != null)
{
if (next.equals("***"))
{
}
}
br.close();
}
catch(IOException ex)
{
System.out.println("File potentially malformed.");
System.err.println(ex);
}
return grid;
}
注意:字符串"***"
是文本文件中的分隔符。
特定的javac输出:
javac "Maze.java" (in directory: C:\Users\Blaise\Programming\csc300\Maze)
Maze.java:40: error: cannot find symbol
numberOfRooms = parseInt(br.readLine());
^
symbol: method parseInt(String)
location: class Maze
Maze.java:41: error: cannot find symbol
numRows = parseInt(br.readLine());
^
symbol: method parseInt(String)
location: class Maze
Maze.java:42: error: cannot find symbol
numCols = parseInt(br.readLine());
^
symbol: method parseInt(String)
location: class Maze
3 errors
Compilation failed.
答案 0 :(得分:3)
parseInt
是在Integer
类中声明的静态方法。要调用它,您需要使用类名限定方法名称,如下所示:
Integer.parseInt(yourString);
或者在课程顶部添加以下静态导入语句:
import static java.lang.Integer.parseInt;
答案 1 :(得分:1)
您应该使用Integer.parseInt(String)。它是Integer类
中的静态方法答案 2 :(得分:0)
您应该使用静态Integer.parseInt(String)或
import static java.lang.Integer.parseInt;
答案 3 :(得分:0)
您应该使用Integer.parseInt(String)
。但是如果你试图导入它,你应该静态导入它:
import static java.lang.Integer.parseInt;
答案 4 :(得分:0)
您无需导入java.lang.Integer
,因为始终会导入java.lang
个包。使用静态方法Integer.parseInt(str)