使用泛型类时无法访问FILEREADER类中的读取函数。有谁能告诉我为什么我不能在这里访问读取函数?
主类:
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
public class MainIO {
public static void main(String[] args) throws Exception {
System.out.println("Inside mainIO class");
FileReader fr = null;
GenericInput gio;
try {
fr = new FileReader("C:\\Users\\alex\\IdeaProjects\\javaIO\\src\\inputfile.txt");
gio = new GenericInput(fr);
gio.readByteData(fr);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}二级:
import java.io.FileReader;
import java.io.InputStream;
public class GenericInput < T > {
T input;
public GenericInput(T input) {
System.out.println("Inside: " + input.getClass().getName());
this.input = input;
}
public void readByteData(T input) throws Exception {
int c;
while ((c = input.read()) != -1)
System.out.print(c + "-");
}
}输入文本文件:
pythön误差
C:\Users\alex\IdeaProjects\javaIO\src\GenericInput.java:14:25
java: cannot find symbol
symbol: method read()
location: variable input of type T发布于 2021-12-19 16:30:10
由于<T>不受约束,它可以是任何东西--甚至是Object或Integer,所以不能保证它会有一个read方法。如果您想使用该方法,则需要将T约束到具有这种方法的东西--例如,扩展Reader的东西。
public class GenericInput <T extends Reader> {
// Here ---------------------^https://stackoverflow.com/questions/70413241
复制相似问题