【发布时间】:2015-02-21 21:47:53
【问题描述】:
编辑: 这是我正在尝试的方法...
public static <T> void save(T t, Object o, String fileName)
{
ObjectOutputStream out =
new ObjectOutputStream(
new FileOutputStream(fileName));
out.writeObject((T)o);
out.close();
}
public static <T> T load(T t, String fileName)
{
T object = null;
ObjectInputStream in =
new ObjectInputStream(
new FileInputStream(fileName));
object = (T)in.readObject();
in.close();
return (T)object;
}
使用下面的代码保存作品。
int test = 7;
save(int.class, test, "test.dat");
但是使用 load() 我无法让它工作。 以下不起作用,我得到“类型不匹配:无法从 Class 转换为 int”。
int test2 = load(int.class, "test.dat");
如果我将其更改为 Eclipse 建议的内容:
Class<Integer> test = method(int.class);
我得到一个异常:“java.lang.Integer cannot be cast to java.lang.Class”。
那么我应该如何使用 T 作为返回类型来让它工作呢?
【问题讨论】:
-
Trinimom:谢谢,这对我有点帮助。但是在使用返回时我无法让它工作。 FoggyDay:不,我不想重新发明任何东西。我想要的问题是不是吗?
-
您能否展示更多您的新代码 - 目前尚不清楚您所做的更改。
标签: java types return arguments