我显然不明白这一点,所以有人能告诉我为什么我的类变量没有分配,以及我能做些什么来使它工作?我有两个类变量,它们是数组列表。
listOfPMDFilesInRootZip
和 listOfXMLFilesInRootZip
我已经减少了大量代码,因此您可以看到重要的内容:
public void parseZip(final Object syncToken) {
showLoadingAlertDialogue(true);
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
synchronized (syncToken) {
try {
// they're assigned here
listOfPMDFilesInRootZip = rootZip.getAllPMDFiles();
listOfXMLFilesInRootZip = rootZip.getAllXMLFiles();
// System.out.println(listOfPMDFilesInRootZip.size());
// gives what is expected
runOnUiThread(new Runnable() {
@Override
public void run() {
showLoadingAlertDialogue(false);
}
});
} catch (java.io.IOException e) {
e.printStackTrace();
}
}
}
});
当我在线程中并且我System.out.println(listOfPMDFilesInRootZip.size());
它给了我预期的数量,但是当我在线程完成后尝试访问它时,我得到一个空指针。那么,有人可以告诉我为什么我的类变量没有分配,以及我可以做些什么来使它工作?
感谢您的帮助。