我把我的超级语句放在正确的格式中,但我唯一的错误是它声明类java.lang.object中的构造函数对象不能应用于这部分代码的给定类型:
super (openFile (filename));
这是我现在的代码:
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Vector;import java.io.PrintWriter;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
public class Buffin
{
private static boolean temp;
/////////////////////////////////
private boolean isKeyboard;
/** Connect to the disk file with the given name. If this
* cannot be done, connect to the keyboard instead. */
public Buffin (String filename)
{ super (openFile (filename));
isKeyboard = temp;
} //======================
private static Reader openFile (String filename)
{ try
{ temp = false;
return new FileReader (filename); // IOException here
}catch (IOException e)
{ temp = true;
return new InputStreamReader (System.in);
}
} //======================
/** Read one line from the file and return it.
* Return null if at the end of the file. */
public String readLine()
{ if (isKeyboard)
{ System.out.print (" input> ");
System.out.flush(); // flush the output buffer
}
try
{ return super.readLine(); // in BufferedReader
}catch (IOException e)
{ System.out.println ("Cannot read from the file");
return null;
}
} //============
}[/code]
答案 0 :(得分:3)
您的类仅扩展Object
类,并且没有名为openFile
的方法或构造函数。如果你完全删除super
电话,你会没事的。
答案 1 :(得分:1)
目前,您的班级Buffin
未指定超级班级;这意味着它有一个超类,即java.lang.Object
。没有构造函数在Reader
中使用java.lang.Object
。
您可以将Reader
作为字段存储在Buffin
类中,或者您可以扩展一个在构造函数中接受一个的超类。
答案 2 :(得分:0)
Super涉及超类的构造函数,我看到类Buffin没有继承任何类。正如@Sotirios Delimanolis所说,没有构造函数接受Object类中的Reader。