【发布时间】:2013-04-15 01:47:31
【问题描述】:
相当简单。我的主要项目有一个很大的class,它变得“笨拙”。所以今天我决定尝试制作我的own class,这样我就可以在大class 中简化一些code。
所以这是我的“小”class,我用于Data storage。 TRY/CATCH 语句在 floating 本身在 BIG 类中时有效。不过,在小班上,它抛出了一个 NPE。当我创建own class 时,Try/Catch 系统似乎无法正常工作。有什么想法吗?
file_in = openFileInput("array_saved");
被 Logcat 调用。
...这是类:
package com.eai.thepicker;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import android.app.Activity;
public class DataHandler extends Activity {
FileOutputStream file_out;
FileInputStream file_in;
ObjectOutputStream obj_out;
ObjectInputStream obj_in;
ArrayList<String> retrieved_data;
public DataHandler(){
}
@SuppressWarnings("unchecked")
public ArrayList<String> retrieveData(){
try {
file_in = openFileInput("array_saved");
obj_in = new ObjectInputStream(obj_in);
if(obj_in.available() > 0){
retrieved_data = (ArrayList<String>) obj_in.readObject();
}
else{
retrieved_data = new ArrayList<String>();
}
obj_in.close();
file_in.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return retrieved_data;
}
public void saveData(ArrayList<String> data_out){
try {
file_out = openFileOutput("array_saved", 0);
obj_out = new ObjectOutputStream(file_out);
obj_out.writeObject(data_out);
obj_out.close();
file_out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
【问题讨论】:
-
发布堆栈跟踪,这样我们就可以看到它在哪里崩溃而不是猜测。
-
另外,您正在扩展
Activity,但没有调用onCreate()。如果你没有Views,那么你可能不需要extend Activity,只需在需要时通过创建类的instance来调用类方法。
标签: android nullpointerexception try-catch