1

このエラーはどういう意味ですか?

Note: Main.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

その種のエラーを回避する方法はありますか?

4

3 に答える 3

3

これは、タイプを指定せずにコレクションを使用したときに発生するエラーです。あなたはおそらく次のようなものを持っています:

ArrayList myList = new ArrayList(); // or some other Collection class

その場合は、それを変更して、保存するオブジェクトのタイプを指定する必要があります。例えば:

ArrayList<String> myList = new ArrayList<String>();

詳細については、 JavaGenericsを参照してください。

これは、コードと完全なエラーメッセージを見ずに推測するのが最善です。そのメッセージには他の原因がある可能性があります。これは、以前にそのメッセージに付随して見た問題です。

于 2010-01-30T23:16:36.390 に答える
1

まず、-Xlint:uncheckedを使用して再コンパイルし、問題が何であるかを確認します。次に、それらの問題を修正します。未チェックの警告には、いくつかの潜在的な高レベルの原因があります。1つは、必要な場所に型パラメーターを指定しなかったことです。やむを得ず特定の警告を抑制できる場合もありますが、それは例外であり、本当に重要な警告を抑制しないように注意する必要があります。

したがって、-Xlint:uncheckedを使用して再コンパイルし、明らかになった特定の問題のいずれかに問題がある場合は、追加の質問を投稿してください。

于 2010-01-30T23:12:47.440 に答える
0

どういう意味ですか?

Javaジェネリックを使用すると、次のようなものを書くことができます:

List<String> l = ...;
String s = l.get(0);  // note there is no explicit typecast.

ただし、コードに「チェックされていない操作または安全でない操作」があるとコンパイラが通知する場合は、ジェネリックを安全に使用するための規則に違反していることを意味し、コードは予期しない場所でランタイム クラス キャスト例外を与える可能性があります。たとえば、上記のステートメントでは、型キャストを省略しました。

コンパイラがチェックされていない操作や安全でない操作について警告する原因となることがいくつかあり、それぞれに異なる修復が必要です。コンパイラの指示に従い、-Xlint オプションを付けて実行してください。

于 2010-01-31T04:03:57.617 に答える