感觉真的很愚蠢,不知何故我有一种感觉,我应该将“this”作为“Context”的论据,但老实说,这整个概念对我来说是新的,而且我很困惑,我宁愿 100% 知道在我开始无休止地寻找语法错误之前是什么以及为什么。
几天前我问了一个问题,关于如何使用文件输入/输出流将类对象的 ArrayList 的内容写入应用程序启动时要检索的文件。基本上,我想保存输入的值。在我意识到调用保存和检索方法时必须传递一个上下文之前,我对我的代码充满信心。那时我意识到我不知道什么背景击中了我......所以是的。
这些是我的方法: 创建文件(我猜?):
private static void updatePickThreeList(Context mC){
FileOutputStream stream = null;
try{
stream=mC.openFileOutput(PICK_THREE_NUMBERS,Context.MODE_PRIVATE);
ObjectOutputStream dout = new ObjectOutputStream(stream);
dout.writeObject(pickThreeNumbers);
stream.getFD().sync();
stream.close();
dout.flush();
}catch(IOException e){
e.printStackTrace();
}
}
检索数据(我希望):
private static void getPickThreeList(Context mC){
FileInputStream stream = null;
try{
stream=mC.openFileInput(PICK_THREE_NUMBERS);
ObjectInputStream din = new ObjectInputStream(stream);
pickThreeNumbers = (ArrayList<PickThreeNumbers>) din.readObject();
stream.getFD().sync();
stream.close();
din.close();
}catch(IOException e){
e.printStackTrace();
}catch(ClassNotFoundException e1){
e1.printStackTrace();
}
}
我假设我可以调用第一种方法将 ArrayList 保存到文件,然后调用第二种方法将保存的值简单地加载到数组中。顺便说一句,使用的数组和其他值是:
static List<PickThreeNumbers> pickThreeNumbers = new ArrayList();
final static String PICK_THREE_NUMBERS="pick_three_numbers";
因此,根据对我最初问题的回答,这两种方法都需要在上下文中传递,并且 Java 非常坚持要获取该上下文(看图),所以当我调用 updatePickThreeList(Context); 时,究竟是什么作为“上下文”进入?
在此先感谢 - 我是一个非常欣赏编程的菜鸟。