我有一些类似的代码:
ArrayList<SomeType> toGetSizeOf = new ArrayList<SomeType>();
int size = toGetSizeOf.size();
但是,第二行给了我一个 NullPointerException。有什么方法可以避免这种情况,基本上可以判断 ArrayList 是否已初始化但尚未添加任何内容?(我有一个依赖于此的if
/语句)。else
提前致谢!
我有一些类似的代码:
ArrayList<SomeType> toGetSizeOf = new ArrayList<SomeType>();
int size = toGetSizeOf.size();
但是,第二行给了我一个 NullPointerException。有什么方法可以避免这种情况,基本上可以判断 ArrayList 是否已初始化但尚未添加任何内容?(我有一个依赖于此的if
/语句)。else
提前致谢!
我认为您的代码中可能还有其他问题。
以下工作正常:
ArrayList<String> toGetSizeOf = new ArrayList<String>();
int size = toGetSizeOf.size();
System.out.println(size);
这给出了 0。
调试您的代码并检查实际为空的内容。我怀疑这是你的toGetSizeOf。
如果您遇到问题,NullPointerException
那么您应该首先检查它
你可以用...
int size = 0;
if (toGetSizeOf != null) {
size = toGetSizeOf.size();
}
或者...
int size = toGetSizeOf == null ? 0 : toGetSizeOf.size();
您也可以使用ArrayList#isEmpty
which 返回 a boolean
true
,如果列表为空 ( size == 0
) 或者false
不是,这取决于您的需要