以下代码给出了无法找到readLine()方法的错误。但是,如果我用read()替换readLine()并相应地进行一些更改,它就可以工作。
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();
}
}
}
哪个部分有问题?
您应该将'in'声明为BufferedReader而不是Reader:
BufferedReader in = null;
Reader接口不存在readLine()方法。
read()方法在Reader接口中定义,因此任何扩展/实现它的接口或类也将具有read()方法。但是,readLine()方法仅在BufferedReader接口中定义。即使声明为Reader的对象在运行时碰巧是BufferedReader的一个实例,但在编译时会出现错误,因为只有声明的类型很重要。