• ベストアンサー

-Xlint:uncheckedオプションと大きな概念?

Javac test.javaとすると、以下のようになります。 test.javaの操作は、未チェックまたは安全ではありません。 -Xlint:uncheckedオプションを指定して再コンパイルして下さい オプションをつけて再コンパイルすると、警告が表示されます。 一連のこの安全でないという概念がわからずいわれたままにしていますが、どのように理解すればよいのでしょうか? 玄人の方や教えるのが旨い方、お願いいたします。

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

  • ベストアンサー
回答No.2

教えるのが下手だなあと思うのでしたら、またいつものようにスルーでねん。 J2SE 5.0の新機能 第1回 型の安全性を確保する新文法「Generics」 http://www.itarchitect.jp/technology_and_programming/-/18161-6.html 「無検査呼び出し」という警告について知りたいだけでしたら、上記サイト内の内容だけでもいいと思います。要は、 (1)JDK 1.3のコンパイラと同じ動作にしたい時(警告なし。assertを識別子としても使用可。) javac -source 1.3 test.java (2)JDK 1.4のコンパイラと同じ動作にしたい時(警告なし。assert文OK。) javac -source 1.4 test.java (3)JDK 5.0のコンパイラと同じ動作にしたい時(警告あり。assert文OK。省略可。) javac -source 5 test.java です。ちなみに、もうちょっと詳しめで以下のようなサイトもあった。 J2SE 5.0 のコレクションクラス http://www.nextindex.net/java/collection/Collections50.html 最後に、上記のサイトをググるのには、『Java Xlint unchecked オプション』の検索語を用いました。エラーの内容等がよく分からない時には、エラーをまるごと一文にしてググってみるのも鉄則ですが、今回の場合のように半角記号文字などがある場合には、それだけを削除すると結構うまくググれます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • neko_noko
  • ベストアンサー率45% (146/319)
回答No.1

これはおそらくGenericsと呼ばれる、ArrayListのようなコレクションクラスに対する仕様だと思います。 J2SE5.0以降に導入された仕組みで、J2SE1.4以前はありません。 いろんな型を入れられるコレクションクラスは、何でも入れられるために、 想定していない型のデータが入るかもしれず、危険だから予め入れられる型を決めなさい、 ということです。 詳しくは参考URLをどうぞ。 たとえて言うなら、それまでは大きな工具箱があって、そこに金槌や釘、カンナやノコギリなど、何でも入る箱だった。 普通の大工さんは金槌とノコギリを一緒に入れないけど、新人の大工やオマヌケな大工が、間違って一緒に入れてしまい、 金槌を取ろうとした大工がノコギリで怪我してしまうことがあった。 それで、同じ「工具箱」なんだけど、ノコギリ用のもの、金槌用のものなどに分けられるようにした、という感じです。

参考URL:
http://www.javainthebox.net/laboratory/J2SE1.5/LangSpec/Generics/Generics.html
全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • J2SE5.0でのArrayListの警告

    JAVAを始めたばかりの、初心者です。 ArrayListを使って、簡単なプログラムを作成して、 コンパイルをしたのですが、 注: MyClass1.java の操作は、未チェックまたは安全ではありません。 注: 詳細については、-Xlint:unchecked オプションを指定して再コンパイルしてくださ い。 と、出ました。(一応、実行したら、動きました。) 参考書で、調べたら、J2SE5.0では、 ArrayListを使うと、この警告が出るとは、書いてあったのですが、詳しくは、載ってなくて、この警告の意味が全く分かりませんでした。 この警告の意味とはずし方を、教えてください。 お願いします。 長文で、失礼しました。

    • ベストアンサー
    • Java
  • javaプログラムコンパイルはできて、実行もできるが。

    注: SortTest.java の操作は、未チェックまたは安全ではありません。 注: 詳細については、-Xlint:unchecked オプションを指定して再コンパイルしてください。 と、メッセージが出ます。 どうやら Arrays.sort(); 関数を使うと出るようなのですが、どうしたらいいですか?

  • コンボボックスを使う時の警告

    こんにちは。 Javaでコンボボックスを使いたいのですが、コンボボックスを使うと必ず 注意:~.javaの操作は、未チェックまたは安全ではありません。 注意:詳細は、-Xlint:uncheckedオプションを指定して再コンパイルしてください。 と出てしまいます。 自分なりに調べたところ、どうもGenericsというものが解決のカギとなっているんじゃないかとにらんでいるのですがよくわかりません。 以下に警告のでるプログラムを掲載します。 public class fun extends JFrame implements ActionListener{ String[] A; JComboBox data; ------省略------ public fun(){   //コンストラクタ A = datain(); data = new JComboBox(A); ------省略------ public String[] datain() txtファイルからのデータ入力作業 } public static void main(String[] args){ new fun(); } ※入力データの例 テキストファイル  あいうえお  かきくけこ  さしすせそ  たちつてと そしてコンボボックスで選択をできるようにしたいのですが、この警告が出ないようなやり方を教えてください。よろしくお願いします。

    • ベストアンサー
    • Java
  • javaのエラーに関する質問 よろしくお願いします

     こんにちは。どなたかJavaのエラーに詳しい方はどうか教えていただけないでしょうか?本にも載ってなくて、調べようがないので困っています。  エラーの内容は    注 ~の操作は未チェックまたは安全ではありません  注 詳細については -xlint:unchechkedオプションを指定して再コンパイルしてください。    と表示されてしまいます。ソースコードの中に  Hashtable ht=new hashtable(); ~  ht.put( , ); とHashtableを使い、put()に値を入れて実行すると注~のようなエラーが出てしまいます。 全くわかりません。なにをすればいいのでしょうか?どうかよろしくお願いします。

    • ベストアンサー
    • Java
  • コンパイルができないのですが・・・

    JAVA初心者です!!コンパイルをしようと思うのですが、今までできたのに突然コンパイルエラーが起きました。わかる方いましたら教えていただけないでしょうか? メッセージは以下のとおりです。 注:MyFrame.javaは推奨されないAPIを使用またはオーバーライドしています。 注:詳細については、-Xlint:deprecation オプションを指定して再コンパイルしてください。

    • ベストアンサー
    • Java
  • eclipseではコンパイルオプションを指定できないの?

    コンパイル時に javac -encoding EUC-JP ***.java のようにエンコーディングを指定したいのですが、どこを見てもいまいち設定箇所がわかりません。 よろしくお願いします。

    • ベストアンサー
    • Java
  • ソースが階層構造になっているソースのJavacの方法

    お世話になります。 パッケージ構造になっているjavaソースをjavacコマンドを使用してコンパイルしようと思っているのですが、 その方法を教えてください。 具体的には下記のようなパッケージ(jp.co)をコンパイルするバッチファイルをc:\testフォルダ直下に置いてコンパイルしたいのです。 (javac -d . *.java)のようにバッチに書いても javac -d . *.javaを読み込めませんというエラーが表示されてしまいます。(泣) c:\  |  --test ←この階層にコンパイル.batを置く    |    ---jp      |      ---co        |        -- test1        |  |        |  --test1.java        |        -- test2           |           --test1.java 宜しくお願いします。

    • ベストアンサー
    • Java
  • javacコマンドのコンパイルができません!初心者です!

    java初心者なのですが、コンパイルする際に、コマンドで javac Hello.java と入力すると、 javac: ファイルが見つかりません: Hello.java 使い方: javac <options> <source files> 使用可能なオプションのリストについては、-help を使用します と出てきてできません!javaに詳しい方、是非返答お願いします!!

  • コンパイルで困っています。

    コンパイルがうまくいきません。 コマンドプロンプトに >javac Sample1_1.java といれましたら javac:ファイルが見つかりません。Sample1_1.java 使い方:javac<options><source file> 使用可能なオプションのリストについては、-helpをしようします。 というコメントが返ってきました。 どうすればいいでしょか。 ちなみにSample.1_1.javaはjava.studyの中にあります。

  • コンパイルの実行の仕方

    初めてプログラミング言語を授業でとったのですが、 コンパイルの【実行】の仕方がわかりません。 まず、コマンドプロンプトを開くまではわかったのですが、 学校での説明に 「javaのコンパイラはjavacであるので、以下のように指定する。 javac <ソースファイル名> 」 と書いてありました。 コンパイラというのは上記の場合、コマンドプロンプトに 「C:\>javac *****.java」を入力すればコンパイルしたということになるのでしょうか? 「指定する」とかいてあっても指定の仕方すらわからないのです。 コンパイルを検索してもなかなかコンパイルをする意味がよくわからないので、よろしければ教えてください。

文字サイズを大きくする方法
このQ&Aのポイント
  • 「ぴーたっちj100」の製品を使用している方で、文字サイズを大きくしたいとお困りの方へ、解決方法をご紹介します。
  • パソコンやスマートフォンのOSに関係なく、文字サイズの変更方法をご説明します。
  • 電話回線の種類や接続方法に関係なく、文字サイズを大きくすることができます。
回答を見る