无法使用Java中的Object将String添加到List

时间:2015-06-07 15:09:08

标签: java arrays object

我正在开发一个基于JSF的Web应用程序,我从文件中读取内容(dumpfile),然后使用逻辑解析它,并使用对象将其添加到列表中,并使用该对象设置字符串。但我一直收到这个错误。我很困惑我错了。我是初学者,所以有人可以帮助我吗?

List<DumpController> FinalDumpNotes;
public List<DumpController> initializeDumpNotes()
throws SocketException, IOException {
PostProcessedDump postProcessedDump = (PostProcessedDump) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("postProcessedDump");
List<DumpController> FinalNotes = new ArrayList<>();
if (postProcessedDump.getDumpNotes() == null) {
dumpNotes = new DumpNotes();
}
DumpListController dlcon = (DumpListController) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("dumpListController");
DumpInfo dumpinfo = dlcon.getSelectedDumpInfo();
String fileName = dumpinfo.getDate() + dumpinfo.getTime() + dumpinfo.getSeqNo() + dumpinfo.getType() + dumpinfo.getTape() + dumpinfo.getDescription() + ".txt";
if (checkFileExistsInWin(fileName)) {
postProcessedDump.setDumpnotescontent(getFileContentsFromWin(fileName));
String consolidateDumpnotes = getFileContentsFromWin(fileName);
String lines[];
String content = "";
lines = consolidateDumpnotes.split("\\r?\\n");
List<String> finallines = new ArrayList<>();
int k = 0;
for (int i = 0; i < lines.length; i++) {
if (!lines[i].equalsIgnoreCase("")) {
finallines.add(lines[i]);
k++;
}
}
for (int j = 0; j < finallines.size(); j++) {
if (finallines.get(j).startsWith("---------------------SAVED BY")) {
PostProcessedDump dump = new PostProcessedDump();
dump.setDumpMessage(content);
content = "";
FinalDumpNotes.add(dump);
} else {
content = content + finallines.get(j);
}
}
}
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("postProcessedDump", postProcessedDump);
return FinalDumpNotes;
}

我收到以下错误: enter image description here

2 个答案:

答案 0 :(得分:1)

如果要将PostProcessedDump类型的实例添加到List,则应更改其类型。另外,不要忘记初始化它。像,

List<PostProcessedDump> FinalDumpNotes = new ArrayList<>();

此外,Java命名约定是以小写字母开头的变量名。 FinalDumpNotes看起来像一个班级,我建议像

 List<PostProcessedDump> processedList = new ArrayList<>();

答案 1 :(得分:1)

代码问题:

List<DumpController> FinalDumpNotes;

您声明FinalDumpNotesListDumpController个对象,但您从未初始化它。此外,您的IDE正在对以下代码行进行处理:

FinalDumpNotes.add(dump);

因为您尝试将PostProcessedDump对象添加到List而不是DumpController对象。

对于初学者,您需要像这样初始化您的列表:

List<DumpController> finalDumpNotes = new ArrayList<DumpController>();

请注意,我已将变量名称以小写字母开头,这是约定(大写通常为类和接口保留)。

我会把它作为家庭作业留给你来理清这个List的正确用法。