- ベストアンサー
【ジェネリックス】コンパイルエラーが出ます。
毎度お世話になります。 Javaの勉強をしております。 テキストのとおりに打ち込んだのですがコンパイルエラーとなり 対処方法の目処が立ちません。。。 環境: OS:Windows2000 version:Java6 ソース内容 ===ここから===================== package test01; import java.util.*; public class Gen1 { public static void main(String[] args) { List<String> list = new ArrayList<String>(); //リストに文字列を書き込む list.add("テスト1"); //リストから文字列を読み出す String s= (String)list.get(0); System.out.println(s); } } ===ここまで===================== コンパイルエラーの内容は以下のとおりです。 Exception in thread "main" java.lang.Error: コンパイル問題が未解決です。 トークン "<" に構文エラーがあります。AssignmentOperator が無効です。 トークン "=" に構文エラーがあります。正しくは != です。 トークンに構文エラーがあります。構成の位置が間違っています。 トークン ")" に構文エラーがあります。正しくは : です。 at com.sample.nsw2008101202.WordLoveSeeker3.main(WordLoveSeeker3.java:32) ソースコードのエラー該当箇所は↓になります。 List<String> list = new ArrayList<String>(); どなたか対象方法をご存知の方、ご教授ください。 よろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
コード自体には問題ないようです。私の環境ではエラーが出ることなくコンパイルできます。 どのようにコンパイルしていますか? もしコマンドラインでjavacを使っているのであれば、javac -versionを実行すると結果はどうなりますか? Genericsを知らない古いjavacを使っていたりするのではないかと思われます。
その他の回答 (1)
- rinkun
- ベストアンサー率44% (706/1571)
Eclipseを使っていると、標準ではJREのバージョンに関わらず古いバージョンにあわせたコンパイルが行われます。1.3か1.4になっていたかと。 環境設定でコンパイラの準拠レベルを5.0以上に設定してください。 設定場所はJavaコンパイラのタグだったかと思います。
お礼
そのようですね。 eclipseのバージョンをあげたら無事コンパイルが通りました。 ありがとうございました!
お礼
コンパイラがeclipseのバージョンに準拠しているとは 知りませんでした。 私が使っていたeclipseのバージョンが3.0.1で コンパイラは1.4か1.3しか選択できなかったので eclipseごとバージョンをあげたところ コンパイルが通り正常終了できました。 大変助かりました。 ありがとうございました!
補足
salsberry様 早速の回答ありがとうございます。 そうですか!ソースコードの問題でなければ 私のコンパイル環境に原因がありそうですね。 ちなみにコンパイルはコマンドラインではなく eclipse上からJavaアプリケーションの実行でおこなってます。 さっそく環境周りを見直してみます。 ありがとうございました!