我有一些类似的代码:
ArrayList<SomeType> toGetSizeOf = new ArrayList<SomeType>();
int size = toGetSizeOf.size();
然而,第二行给了我一个NullPointerException。有没有办法避免这种情况,基本上告诉ArrayList是否已经初始化但尚未添加任何东西呢? (我有一个if
/ else
语句依赖于此。)
提前致谢!
答案 0 :(得分:2)
我认为你的代码可能还有别的错误。
以下工作正常:
ArrayList<String> toGetSizeOf = new ArrayList<String>();
int size = toGetSizeOf.size();
System.out.println(size);
给出0。
调试代码并检查实际上是什么。我怀疑这是你的toGetSizeOf。
答案 1 :(得分:0)
如果您遇到NullPointerException
的问题,那么您应首先检查它
你可以使用......
int size = 0;
if (toGetSizeOf != null) {
size = toGetSizeOf.size();
}
...或
int size = toGetSizeOf == null ? 0 : toGetSizeOf.size();
如果列表为空(boolean
),则还可以使用ArrayList#isEmpty
返回true
size == 0
,如果不是,则使用false
,具体取决于根据您的需求