サンプル2-1の「チーム一覧を作ろう」で、サンプルをそのまま実行したら以下のエラーになりました。
========
Exception in thread "main" java.lang.Error: コンパイル問題が未解決です。
型 Team のメソッド setId(Integer) は引数 (int) に適用できません。
========
エラーになっている箇所は、以下の「 team.setId(rs.getInt("team_id"));」です。
■TeamDaoImpl.java(抜粋)
public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
// ResultSetからオブジェクトへ詰め替え
Team team = new Team();
team.setId(rs.getInt("team_id"));
team.setName(rs.getString("name"));
return team;
}
■Team.java(抜粋)
public class Team {
private Integer id;
private String name;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
}
java.sql.ResultSetのgetIntがintしか受け取れないということはわかりましたが、
サンプルに一切手を加えていないのでなぜ動かないのか疑問です。
サンプル自体の間違いなのか、何か手を加えないと動かないのかわかりません。
なにか事情をご存知の方がいましたら教えて下さい。
出版社のHPで、
[2006/07/25] 『SpringによるWebアプリケーションスーパーサンプル』 修正ファイル が提供されています
コメントつけれないのでこちらに。
サンプルプログラムが間違っていると思います。
team.setId(new Integer(rs.getInt("team_id")));
だと思います。
int は単なる変数、Integerはクラス(オブジェクト)なので
キャストとかできません。
ありがとうございます。サンプル2-1はできました。
2-2も同様のところがあるので、直してみます。
また書きます。助かりました!
KUROXさんありがとう!
でも 本件の修正ソースはなかったです…
やっぱりソースが悪いのではなくて 設定??
うーん もっとソースと睨めっこします。