繁体   English   中英

假阳性声纳问题

[英]False-positive Sonar issue

问题:声纳为什么会向我发出警告(“更改此问题,以便它不会始终评估为“ false”。)。我已经证明,当requestEntity不执行时, if (info == null)评估为true , t包含在db中找到的有效负载,那么我该如何消除这种误报呢?它与@Nullable@Checkfornull@Nonnull注释有关吗?我知道postForObject方法使用@Nullable注释。

      Info info = restTemplate.postForObject(connectionString, requestEntity,
         Info.class);

      if (info == null) {
         throw new ApplicationException(Constants.NO_RESULT_ERROR_CODE);
      }

这是postForObject方法:

    @Override
    @Nullable
    public <T> T postForObject(URI url, @Nullable Object request, Class<T> responseType)
            throws RestClientException {

        RequestCallback requestCallback = httpEntityCallback(request, responseType);
        HttpMessageConverterExtractor<T> responseExtractor =
                new HttpMessageConverterExtractor<>(responseType, getMessageConverters());
        return execute(url, HttpMethod.POST, requestCallback, responseExtractor);
    }

您可以在报告的行上使用// NOSONAR (并可能解释为什么您忽略了此问题)。

那不是最好的解决方案,但是它可以工作(至少在Eclipse中使用时)。

您也可以将@SuppressWarnings用于问题类型(例如: squid:02020 )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM