• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:java プログラミング 型変換 データベース)

java プログラミング 型変換 データベース

このQ&Aのポイント
  • javaプログラミングでの型変換に関する質問です。
  • プログラム内での型変換において、特定の行でClassCastExceptionエラーが発生しています。
  • String型への変換ではエラーは発生していないようです。

質問者が選んだベストアンサー

  • ベストアンサー
  • zionic
  • ベストアンサー率39% (31/79)
回答No.3

もうすごい勘違いした回答してるのに気づいた。 #1と#2の頓珍漢な回答が恥ずかしすぎる~(><) たぶん、勘違いをしてるか思い込みで気づいてないかのどちらかと思いますが、intを「Double」にはキャストできないですよ。 「Double」ではなくて「double」と素直に書けばいいはず。 多分ご存知だとは思いますが、「Double」と「double」は違うものです。

tomato1414
質問者

お礼

あー区別してなかったですね。。 doubleはdouble型でDoubleはオブジェクト型ですかね。 明日学校で試してみたいと思います! ありがとうございました!!

その他の回答 (2)

  • zionic
  • ベストアンサー率39% (31/79)
回答No.2

あ、ごめんなさい。 このエラーの出てると思われる「iter3」を作る時の「l」を生成する際に使っている「str」という変数の型がわからないと答えられない、という意味で「コードが足りない」と書いたのですが、伝わらなかったようですね。 ということで、「str」という変数名からStringクラスなのかなぁ、という想像なんですが。 ほんとにIntegerですか?

tomato1414
質問者

補足

紛らわしくてすいません、 intなんです。。; intからdoubleにしたくて、iteratorのセットをしたかっので、一度コレクションクラスに変換して、それからキャストでdoubleに変換するつもりだったんです! でもなぜエラーが出るのかわからないんですよね。。

  • zionic
  • ベストアンサー率39% (31/79)
回答No.1

掲載したコードだけでは情報が足りないのですが、おそらくStringクラスのオブジェクトをDoubleにキャストしようとしたからでは?

tomato1414
質問者

補足

ちょっと足りなかったですね。。 少しコードを載せます! そしてイントからダブルに型変換ができないんです。。 なんででしょうか?? PreparedStatement stmt = db.prepareStatement( "INSERT INTO inv(term, postings, totalfreq) VALUES(?, ?, ?);"); // すべての索引語について繰り返す Set entries = invIndex.entrySet(); Iterator iter = entries.iterator(); while (iter.hasNext()) { // 転置索引から,索引語とポスティングリストの組を取り出す Map.Entry entry = (Map.Entry)iter.next(); String term = (String)entry.getKey(); String postingStr = ((PostingList)entry.getValue()).toString(); int totalFreq = totalFreqHash.get(term).intValue(); // SQL文に,挿入するデータを設定 stmt.setString(1, term); stmt.setString(2, postingStr); stmt.setInt(3, totalFreq); stmt.executeUpdate(); String[] post = postingStr.split(","); String[] post2 = new String[5000]; for(int i=0;i<post.length;i++){ //System.out.println("post["+i+"]="+post[i]); post2 = post[i].split(":"); } for(int i=0;i<post2.length;i++){ //System.out.println("post2["+i+"] = " + post2[i]); str[Integer.valueOf(post2[0])]+=Integer.valueOf(post2[1]); } int j=0; /*while(j<20){ System.out.println("str["+j+"]="+str[j++]); }*/ } stmt.close();

関連するQ&A

専門家に質問してみよう