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