以下代码给出了错误,即找不到readLine()方法。 但是,如果我将readLine()替换为read()并相应地进行了很少的更改,它就可以工作。
import java.io.*;
class Console {
public static void main (String[] args) throws IOException {
Reader in = null;
String c;
try {
in = new BufferedReader (new InputStreamReader(System.in));
System.out.println("type 'quit' to quit!");
do {
c=in.readLine();
System.out.println(c);
} while(!c.equals("quit");
} finally {
if(in!=null) in.close();
}
}
}
这里哪个地方有问题?
答案 0 :(得分:4)
您应将您的“ in”声明为BufferedReader,而不是Reader:
BufferedReader in = null;
Reader接口不存在readLine()方法。
read()方法是在Reader接口中定义的,因此扩展/实现它的任何接口或类也将具有read()方法。 但是,readLine()方法仅在BufferedReader接口中定义。即使在运行时声明为Reader的对象恰好是BufferedReader的实例,在编译时也会出现错误,因为仅声明的类型很重要。