• ベストアンサー

[JAVA]互換性のない型です・・・その理由。

こんにちわぁ♪ String[][][] TEST = (String[][][])request.getAttribute("MENU"); int TEST_neo = Integer.valueOf(TEST[0][0][3]); としてコンパイルしますと、互換性のない型ですというエラーがきてできません。 Strign→Integerの変換ってできますよね?? 配列にしてるからかな・・・?? 宜しくお願い致します。

  • Java
  • 回答数2
  • ありがとう数1

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

  • ベストアンサー
  • yuji
  • ベストアンサー率37% (64/169)
回答No.2

APIをよく読みましょう。 それとエラーメッセージも。 valueOfメソッドが返すのは Integer型です。 int型ではありません。 int型の値が欲しいのであれば int TEST_neo = Integer.parseInt(TEST[0][0][3]); では?

その他の回答 (1)

  • -soh-
  • ベストアンサー率27% (55/201)
回答No.1

Integer.valueOf(String); ででてくる型が Integer型だからじゃないですかね? Integer.valueOf(TEST[0][0][3]).intValue(); ってしてみたらいかがでしょう? (実験してないからとりあえず自信無し)

関連するQ&A

  • java5.0で Writer.append互換性エラー

    タイトルどおりなのですが、 JDK1.4までなら問題なかった部分で「互換性エラー」が出ております。 どのようにソースを修正すべきかご教示ください。 ---------.---------.---------.---------.---------.--------- public abstract class UserAbstractPrintWriter extends PrintWriter { public final static String INDENT_STRING = " "; // TAB1個 public UserAbstractPrintWriter(Writer out) { super(out); } public abstract void printLineStart(int indent, String x); public abstract void printLine(int indent, String x); public abstract void printLineEnd(int indent, String x); } ---------.---------.---------.---------.---------.--------- このクラスのコンパイルエラーとして 戻りの型は Writer.append(char), PrintWriter.append(char) と互換性がありません。 戻りの型は Writer.append(CharSequence), PrintWriter.append(CharSequence) と互換性がありません。 戻りの型は Writer.append(CharSequence, int, int), PrintWriter.append(CharSequence, int, int) と互換性がありません。 の3つが表示されます。 一応ネットでサーチしてみたのですが、根本解決ではなく、コンパイルオプションの変更で対応するものだったので、 「JDK5.0からは本来はどのように記述してほしいのか?」 について、ご教示願えればと思います。 よろしくお願いします。

    • ベストアンサー
    • Java
  • エラー(互換性の無い型)

    はじめましてsunoftaiyoと申します。このカテゴリでは初めての質問です。 これからどうぞよろしく御願いします。 早速なのですが tokuten.txtという30個の数字が羅列されたテキストを読み込み、合計点と平均点を表示するプログラムについてなのですが import java.io.*; public class yomikomi03 { public static void main(String[] args) throws IOException { try{ BufferedReader br = new BufferedReader(new FileReader("tokuten.txt")); String tokuten[] = new String[29]; String t[] = new String[29]; int a=0; for(int i=0;i<29;i++) { tokuten[i] = br.readLine(); t[i] = Integer.parseInt(tokuten[i]); } for(int j=1;j<29;j++) { a = a + tokuten[j]; } int b = a/30; System.out.println("合計点は" + a); System.out.println("平均点は" + b); } catch(FileNotFoundException e) { System.out.println("ファイルが見つかりません。"); } } } というソースでコンパイルすると yomikomi03.java:14: 互換性のない型 検出値 : int 期待値 : java.lang.String t[i] = Integer.parseInt(tokuten[i]); ^ yomikomi03.java:18: 互換性のない型 検出値 : java.lang.String 期待値 : int a = a + tokuten[j]; ^ とでます。どのように対処すればよいでしょう?

    • ベストアンサー
    • Java
  • 型変換の質問

    どうしても考えてもわからないので投稿します。 Q1.以下の3つの型変換処理を実行せよ ・型変換(1)(int⇒String) ・型変換(2)(int⇒Double) ・型変換(3)(String⇒int) の、問題なのですがどうしても出力できません。 どなたか教えてください。

  • 文字型配列に数値を文字として代入したいです

    掲題の通りですが、listという配列に数値や文字を入れたいです。 数値は必ず整数1桁、文字はAかBの1文字です。 配列は char list[] = new char[8]; として定義しています。 numにAかBを入れると、代入も表示もうまくいきます。 しかし、数値を入れると以下のような動作となります。 list[i] = num とすると 「不適合な型: 精度が失われる可能性があるintからcharへの変換」 というエラーが表示されます。 list[i] = (char)num; に変更するとエラーは出ませんが、表示がうまくされません。 list[i] = String.valueOf(num); に変更すると 「エラー: 不適合な型: Stringをcharに変換できません:   list[i] = String.valueOf(num);」 というエラーが表示されます。 何か良い方法はないでしょうか。

  • 基本に戻って、型について考えてみる

    すいません。 サーブレットの所で質問なんですけれども、 戻り値の型が基本型やString型の場合だったら、 変数にどんな値が格納されているのかイメージしやすいんですけれども(例えばすぐ下の例の場合ですね)、戻り値の型がString型以外の参照型の場合には、戻り値が具体的にどのような値になっているのかイメージできなくて困っています。 String str1=br.readLine(); int num1=Integer.parseInt(str1); 例えばenumeration型。 一体この型はどんな型?っていう質問もへんなんですけれども、この型の変数がさしている値というのは具体的にいうとどう表現できるのでしょうか? 基本型やString型は本当に分かりやすいのですけれど。 あと他にもPrintWriter型だとか、Object型だとか、 なぜかイメージできないんですよね。 Enumeration paramNames = request.getParameterNames(); もしよろしければ教えてください。 お願いします。

    • ベストアンサー
    • Java
  • ラッパークラスのvalueOfメソッドについて

    あるテキストで、「int i = Integer.valueOf("10");」はvalueOfメソッドの戻り値型がIntegerであるにも関わらずint型変数に代入しようとしているためにコンパイルエラーになると解説されていました。 しかし、実際にコードを書いてみると、上記のコードはコンパイルが通ります。(代入時にアンボクシングされているということでしょうか) テキストはJava2 Platform5.0のものなので、Java SE6で何かしら仕様が変更されているのかと思ったのですが、どなたか詳しい方、解説をお願いします。

    • ベストアンサー
    • Java
  • Javaのキャストについて

    String a = String.valueOf(100L); String b = (String)100L; 前者は正常に実行できるが後者はコンパイルエラーになるのはなぜですか?参考書には互換性がないからと書いてありましたが、互換性の一覧表みたいなのはどこかにありますか?

  • Delphiの型変換について

    DelphiでParadoxにテーブルを作成するツールを 作ろうとしています。 TFieldType型のftStringを文字列'ftString'に 変換してString型の2次元配列にいれたいのですが、 うまくいきません。 String型にキャストしようとしても 「正しくない型キャスト」とエラーが出てしまいます。 どうすれば、TFieldType型をString型に 変換できるのでしょうか。 Paradoxを使ったことのある方、ご教授お願いします。

  • Javaの型や型変換について

    Javaの型や型変換についてお聞きします。 HashMap a = new HasMap(); a.put("A", "a"); a.put("B", "b"); で、a.get("A");とすると、 "a"となりますが、 String key = "A"; a.get(key);とすると、引数がObject型でないというコンパイルエラーになります。 どのように対処すればよいのでしょうか? このようにJavaの型・型変換について詳しく書かれている(その項目について)書籍を探しています。Java素人なので、理解しやすい本を教えてください。

    • ベストアンサー
    • Java
  • VBのString型の配列をVCで受け取るには?

    VBでString型の配列として定義されている変数を VCのプログラムで受け取るにはどうすればよいのでしょうか? 試しにVBでString型の配列を作って DLLのC_TESTというファンクションを呼び出すという 処理を作ってみたのですが、コンパイルエラーになってしまいます。 なにかおかしいところありますか? そもそもVCにはString型ってないんですよね? プログラミング初心者ですので、変な言葉遣いに なってるかもしれませんが宜しくお願いします。 VB Declare Function C_TEST Lib "\test.dll" (ByVal data() As String) As Integer Dim A(1) As String dim rtn as Integer A(0)="あああ" A(1)="いいい" rtn= C_TEST(A) VCのプログラム int _stdcall C_TEST(LPSTR A[2] ){ AfxMessageBox( A[0] ); return(0); }