6

このコンパイラ エラーが何を意味するのかについて多くの検索を行いましたが<identifier> expected、どれも私の状況には当てはまらないようです。これが重複または基本的な情報である場合は本当に申し訳ありませんが、どこにも何も見つかりません.

次のコードは正常に動作します。私は肯定的であることに注意してくださいmyObject1HashSet<String>キャストは問題ありません。

@SuppressWarnings("unchecked")
HashSet<String> s1 = (HashSet<String>) myObject1;

次のコードは正常に動作しません。コンパイルされますが、警告が表示されます。

@SuppressWarnings("unchecked")
HashSet<String> s1;
s1 = (HashSet<String>) myObject1;

それでは、以下のコードを試してみます。

@SuppressWarnings("unchecked")
HashSet<String> s1;
@SuppressWarnings("unchecked")
s1 = (HashSet<String>) myObject1;

今ではコンパイルさえ拒否し、<identifier> expected私をとても困惑させているエラーを私に与えています。私のコマンドラインのシンボルは、最後の行の^直前を指しています。=と の間に何を置くことが期待できるのか、私にはわかりませs1=

何か案は?ありがとう!

4

2 に答える 2

11

単純な割り当てステートメントに注釈を適用することはできません。JLS のセクション 9.7から:

注釈は、パッケージ (§7.4.1)、クラス (§8.1.1) (列挙型 (§8.9) を含む)、インターフェース (§9.1.1) (注釈型 (§9.6) を含む) のいずれであっても、任意の宣言で修飾子として使用できます。 )、フィールド(§8.3.1、§9.3)、メソッド(§8.4.3、§9.4)、仮パラメータ(§8.4.1)、コンストラクタ(§8.8.3)、またはローカル変数(§14.4.1) .

確かに、コンパイラのエラーメッセージがより明確になる可能性があることに同意します...

于 2012-10-14T21:46:19.163 に答える
1

Java Api for Annotations を見ることができます。

http://docs.oracle.com/javase/6/docs/api/java/lang/SuppressWarnings.html

http://docs.oracle.com/javase/6/docs/api/java/lang/annotation/ElementType.html#LOCAL_VARIABLE

SupressWarnings にはターゲット LOCAL_VARIABLE があることがわかります。

また、LOCAL_VARIABLE は代入ではなく宣言を表します。

于 2012-10-14T21:47:30.380 に答える