Android 相机:'characteristics.get(CameraCharacteristics.LENS_FACING)' 的拆箱可能会产生 NPE
Android Camera: Unboxing of 'characteristics.get(CameraCharacteristics.LENS_FACING)' may produce NPE
我正在实施 Camera2
,并且在设置相机输出时收到以下警告(我无法重现任何可能发生的 "npe") (我从 google 的示例中获取我的代码)以下行给我以下警告:
"Unboxing of 'characteristics.get(CameraCharacteristics.LENS_FACING)'
may produce NPE."
for (String cameraId : manager.getCameraIdList()) {
CameraCharacteristics characteristics = manager.getCameraCharacteristics(cameraId);
if (characteristics.get(CameraCharacteristics.LENS_FACING)
== CameraCharacteristics.LENS_FACING_FRONT) { //THESE LINE IS WHERE THE WARNING APPEARS
continue;
}
....
有人知道如何以正确的方式检查它以便在它发生时发现它吗?
您正在将它与原始 int
进行比较,而 characteristics.get(CameraCharacteristics.LENS_FACING)
可能返回一个 Integer
,它是一个对象。发生的事情是你将拥有
Integer integer = characteristics.get(CameraCharacteristics.LENS_FACING);
if (integer.intValue() == CameraCharacteristics.LENS_FACING_FRONT) {
}
如果 integer
为 null,您将获得 NPE
访问 intValue()
我正在实施 Camera2
,并且在设置相机输出时收到以下警告(我无法重现任何可能发生的 "npe") (我从 google 的示例中获取我的代码)以下行给我以下警告:
"Unboxing of 'characteristics.get(CameraCharacteristics.LENS_FACING)' may produce NPE."
for (String cameraId : manager.getCameraIdList()) {
CameraCharacteristics characteristics = manager.getCameraCharacteristics(cameraId);
if (characteristics.get(CameraCharacteristics.LENS_FACING)
== CameraCharacteristics.LENS_FACING_FRONT) { //THESE LINE IS WHERE THE WARNING APPEARS
continue;
}
....
有人知道如何以正确的方式检查它以便在它发生时发现它吗?
您正在将它与原始 int
进行比较,而 characteristics.get(CameraCharacteristics.LENS_FACING)
可能返回一个 Integer
,它是一个对象。发生的事情是你将拥有
Integer integer = characteristics.get(CameraCharacteristics.LENS_FACING);
if (integer.intValue() == CameraCharacteristics.LENS_FACING_FRONT) {
}
如果 integer
为 null,您将获得 NPE
访问 intValue()