我想做类似的事情:
List queryTerms = null;
if (tsym) {
queryTerms = buildTreasuryQueryTerms(event, budgetLevel, null, null);
}
queryTerms.add(buildQueryTerms(event, session, budgetLevel));
这可以编译,但是当我尝试在
queryTerms.add()
时执行tsym == null
时会抛出空指针异常。您不能使用.add()
初始化列表吗?忍者编辑:
buildQueryTerms
返回protected List
最佳答案
在操作对象之前,需要一个实例。在您的情况下,queryTerms
不引用任何实例(它是空引用)-将没有对象可以调用.add()
。
因此,您需要执行以下操作,假设buildTreasuryQueryTerms()将在执行后返回一个List:
List queryTerms = null;
if (tsym) {
queryTerms = buildTreasuryQueryTerms(event, budgetLevel, null, null);
} else {
queryTerms = new ArrayList();
}
关于java - 如何用另一个列表的项目初始化List?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19636881/