我正在实现Camera2,并且在设置摄像机输出时得到以下警告(我无法重现可能发生的任何“ npe”)(我从以下示例中获取了代码) google)以下行向我发出以下警告:


“将'characteristics.get(CameraCharacteristics.LENS_FACING)拆箱”
可能会产生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()

关于java - Android相机:将'characteristics.get(CameraCharacteristics.LENS_FACING)'拆箱可能会产生NPE,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34402419/

10-13 07:37