首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

HibernateTemplate.load 參數類型不匹配:int vs Serializable 解決方案

     編輯:Java 綜合教學

錯誤現象

The method load(Class, Serializable) in the type HibernateTemplate 
is not applicable for the arguments (Class, int)

雖然 int 自動裝箱為 Integer(實現 Serializable),但編譯器報錯。

根本原因

MyEclipse/Eclipse 編譯器合規級別設置為 1.4,該版本無自動裝箱特性,導致 int 無法隱式轉為 Integer。

兩種解決方案

方案一:升級編譯器版本(推薦)

  1. Window → Preferences → Java → Compiler
  2. Compiler compliance level 改為 1.6 或更高。
  3. Apply → Clean Project 重新編譯。

方案二:強制類型轉換(不改環境)

// 原代碼
hibernateTemplate.load(User.class, userId); // userId 是 int

// 修改為
hibernateTemplate.load(User.class, (Serializable) userId);
// 或
hibernateTemplate.load(User.class, Integer.valueOf(userId));

驗證

修改後重新編譯,錯誤消失,運行正常。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved