<i id='TYFes'><tr id='TYFes'><dt id='TYFes'><q id='TYFes'><span id='TYFes'><b id='TYFes'><form id='TYFes'><ins id='TYFes'></ins><ul id='TYFes'></ul><sub id='TYFes'></sub></form><legend id='TYFes'></legend><bdo id='TYFes'><pre id='TYFes'><center id='TYFes'></center></pre></bdo></b><th id='TYFes'></th></span></q></dt></tr></i><div id='TYFes'><tfoot id='TYFes'></tfoot><dl id='TYFes'><fieldset id='TYFes'></fieldset></dl></div>

    <bdo id='TYFes'></bdo><ul id='TYFes'></ul>
      <legend id='TYFes'><style id='TYFes'><dir id='TYFes'><q id='TYFes'></q></dir></style></legend>

      <small id='TYFes'></small><noframes id='TYFes'>

    1. <tfoot id='TYFes'></tfoot>
      1. Java 通配符泛型作为 Eclipse 和 SonarQube 中的返回警告

        Java wildcard generic as return warning in Eclipse and SonarQube(Java 通配符泛型作为 Eclipse 和 SonarQube 中的返回警告)
        <i id='dWiDD'><tr id='dWiDD'><dt id='dWiDD'><q id='dWiDD'><span id='dWiDD'><b id='dWiDD'><form id='dWiDD'><ins id='dWiDD'></ins><ul id='dWiDD'></ul><sub id='dWiDD'></sub></form><legend id='dWiDD'></legend><bdo id='dWiDD'><pre id='dWiDD'><center id='dWiDD'></center></pre></bdo></b><th id='dWiDD'></th></span></q></dt></tr></i><div id='dWiDD'><tfoot id='dWiDD'></tfoot><dl id='dWiDD'><fieldset id='dWiDD'></fieldset></dl></div>

          <bdo id='dWiDD'></bdo><ul id='dWiDD'></ul>

          <small id='dWiDD'></small><noframes id='dWiDD'>

          <tfoot id='dWiDD'></tfoot>

                    <tbody id='dWiDD'></tbody>
                  <legend id='dWiDD'><style id='dWiDD'><dir id='dWiDD'><q id='dWiDD'></q></dir></style></legend>
                  本文介绍了Java 通配符泛型作为 Eclipse 和 SonarQube 中的返回警告的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  private List gridModel;
                  
                  public List getGridModel() {
                          return gridModel;
                  }
                  

                  Eclipse 显示警告:

                  Eclipse shows a warning:

                  List 是原始类型.对泛型 List 的引用应该被参数化.

                  List is a raw type. References to generic type List should be parameterized.

                  将代码更改为以下将删除警告

                  Changing the code to below will remove the warning

                  private List<?> gridModel;
                  
                  public List<?> getGridModel() {
                          return gridModel;
                  }
                  

                  但是,上面的代码在 SonarQube 中显示了一个主要的陷阱错误:

                  However the above code shows a Major pitfall error in SonarQube which says:

                  删除通用通配符类型的使用.返回参数中不应使用通用通配符类型

                  Remove usage of generic wildcard type. Generic wildcard types should not be used in return parameters

                  那么我该如何解决这个警告呢?
                  我在这里看到 类似问题,但可以找不到解决办法.

                  So how can I fix this warning?
                  I see a similar question here but could not find the solution .

                  使用 Class 没有移除声纳警告.

                  Using Class<? extends Object> did not remove Sonar warning.

                  推荐答案

                  那么我该如何解决这个警告呢?

                  So how can I fix this warning ?

                  你可以为你的类使用类型参数:

                  You can use a type parameter for your class :

                  public class GridModelHolder<T> {
                     private List<T>  gridModel;
                  
                     public List<T> getGridModel() {
                      return gridModel;
                     }
                  }
                  

                  然后客户端代码可以决定 List GridModelHolder 的类型:

                  The client code can then decide what type of List GridModelHolder holds :

                  GridModelHolder<字符串>gridModelHolder = new GridModelHolder(new ArrayList);

                  但是,如果您坚持使用原始类型,您可以取消警告或仅使用对象列表(不推荐使用这两种方法)

                  However, if you insist on using raw types, you can either suppress the warnings or simply have a List of objects (Neither of these are recommended)

                  @SuppressWarnings("unchecked")
                  public class GridModelHolder {
                     private List  gridModel;
                  
                     public List getGridModel() {
                      return gridModel;
                     }
                  }
                  

                  public class GridModelHolder {
                     private List<Object>  gridModel;
                  
                     public List<Object> getGridModel() {
                      return gridModel;
                     }
                  }
                  

                  这篇关于Java 通配符泛型作为 Eclipse 和 SonarQube 中的返回警告的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                  相关文档推荐

                  Slf4j LoggerFactory.getLogger and sonarqube(Slf4j LoggerFactory.getLogger 和 sonarqube)
                  Security - Array is stored directly(安全性 - 数组直接存储)
                  SonarQube quot;Class Not Foundquot; during Main AST Scan(SonarQube“找不到类在主 AST 扫描期间)
                  Integrate Spock#39;s test with Sonar(将 Spock 的测试与声纳集成)
                  How do I make Hudson/Jenkins fail if Sonar thresholds are breached?(如果违反声纳阈值,我如何让 Hudson/Jenkins 失败?)
                  automatically add curly brackets to all if/else/for/while etc. in a java code-base(自动将大括号添加到 java 代码库中的所有 if/else/for/while 等)
                    • <bdo id='HyhVt'></bdo><ul id='HyhVt'></ul>

                    • <legend id='HyhVt'><style id='HyhVt'><dir id='HyhVt'><q id='HyhVt'></q></dir></style></legend>

                      <small id='HyhVt'></small><noframes id='HyhVt'>

                      <tfoot id='HyhVt'></tfoot>
                        • <i id='HyhVt'><tr id='HyhVt'><dt id='HyhVt'><q id='HyhVt'><span id='HyhVt'><b id='HyhVt'><form id='HyhVt'><ins id='HyhVt'></ins><ul id='HyhVt'></ul><sub id='HyhVt'></sub></form><legend id='HyhVt'></legend><bdo id='HyhVt'><pre id='HyhVt'><center id='HyhVt'></center></pre></bdo></b><th id='HyhVt'></th></span></q></dt></tr></i><div id='HyhVt'><tfoot id='HyhVt'></tfoot><dl id='HyhVt'><fieldset id='HyhVt'></fieldset></dl></div>

                              <tbody id='HyhVt'></tbody>