Java泛型问题,在编译时,提示警告: 需要: List<T> 找到: List<BookDetails>
天蓬老师
天蓬老师 2017-04-18 09:12:53
0
2
520

错误提示:
++++++++++
警告: [unchecked] 方法调用未经过检查: 将类 Collections中的方法 s
ort应用到给定的类型

Collections.sort(books);
                ^

需要: List<T>
找到: List<BookDetails>
其中, T是类型变量:

T扩展已在方法 <T>sort(List<T>)中声明的Comparable<? super T>

1 个警告
++++++++++

下面是源代码:

  public Collection<BookDetails> getBooks()throws Exception{
    Connection con=null;
    PreparedStatement prepStmt=null;
    ResultSet rs =null;
    List<BookDetails> books = new ArrayList<BookDetails>();
    try {
      con=getConnection();
      String selectStatement = "select * " + "from BOOKS";
      prepStmt = con.prepareStatement(selectStatement);
      rs = prepStmt.executeQuery();

      while (rs.next()) {

        BookDetails bd = new BookDetails(rs.getString(1), rs.getString(2), rs.getString(3),
           rs.getFloat(4), rs.getInt(5), rs.getString(6),rs.getInt(7));
        books.add(bd);
      }
    }finally{
      closeResultSet(rs);
      closePrepStmt(prepStmt);
      closeConnection(con);
    }
    
    Collections.sort(books);           // 出现警告的地方
    return books;
  }

问题: 这是什么原因?T不是只是一个类型符号吗?为什么必须要找到List<T>?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

모든 응답(2)
PHPzhong

으아악

참고: T는 Comparable<? super T를 확장합니다.

Peter_Zhu

Java 버전이 너무 낮을 수 있습니다. Java 1.5 이상에서는 @SuppressWarning 주석을 지원합니다

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!