我想带#34;计算机"来自" computers.dat"的对象将文件放入ArrayList中,然后调用computer.toString()方法显示它们。
这是我的代码:
the type parameter `H` is not constrained by the impl trait, self type, or predicates
对于记录,计算机类已经实现了Serializable接口,以防您想知道这是否是问题
当我运行程序时,我遇到了这些错误:
import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.util.ArrayList;
public class ReadComputers {
public static void main(String[] args) throws ClassNotFoundException, IOException {
FileInputStream fis = new FileInputStream("computers.dat");
ObjectInputStream ois = new ObjectInputStream(fis);
ArrayList <Computer> comp;
comp = (ArrayList <Computer>)ois.readObject();
for (int i = 0; i < comp.size(); i++) {
String computer = comp.get(i).toString();
System.out.println(computer);
}
ois.close();
}
}
答案 0 :(得分:-1)
以下是我如何使用它:
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.util.ArrayList;
public class ReadComputers {
public static void main(String[] args) throws ClassNotFoundException, IOException {
try{
FileInputStream fis = new FileInputStream("computers.dat");
ObjectInputStream ois = new ObjectInputStream(fis);
Object obj = ois.readObject();
ArrayList<Computer> computers = (ArrayList<Computer>) obj;
for (Computer c : computers) {
System.out.println(c.toString());
System.out.println();
}
}
catch (FileNotFoundException e){
e.printStackTrace();
}
catch (IOException e){
e.printStackTrace();
}
catch (ClassNotFoundException e){
e.printStackTrace();
}
}
}
我从网络上的几个不同来源和我的教科书中借用了代码,但对于那些对这里的答案感到好奇的人来说,它是。感谢所有帮助过的人。