3

これらの一般的でない文字を Java 識別子で使用することに問題はありますか? Java言語仕様から

「Java 文字」には、大文字と小文字の ASCII ラテン文字 AZ (\u0041-\u005a)、az (\u0061-\u007a)、および歴史的な理由から、ASCII アンダースコア (_、または \u005f) とドル記号が含まれます。 ($、または \u0024)。$ 文字は、機械的に生成されたソース コードでのみ使用するか、まれに、レガシー システムの既存の名前にアクセスするために使用する必要があります。

これらの文字は廃止されたということですか? または、特別な使用例のために予約されているだけです。_静的フィールド名でよく使用されます。

フィールド名とメソッド名に基づいて動作する小さなライブラリを構築しようとしています。オブジェクトを受け取り、そのフィールド名を解析し、どのように動作するかを決定します。
注釈を利用することもできます。しかし、シリアル化には難点があります (JAXB など)。また、説明的なフィールド名 (Convention over Configuration) を使用する方が簡単で迅速な場合もあります。したがって、これらのめったに使用されない文字は、この場合に役立ちます。

アップデート

ユニコード文字については意図的に触れませんでした。識別子名に Unicode 文字を使用することは、少なくとも不適切であると考えています。

4

1 に答える 1

2

アンダースコアは完全に問題ありません。私は$を避けます。$name一部の非表示/生成されたフィールドと競合する可能性があります。

ライブラリでユーザークラスの特別なフィールドにアンダースコアを付ける必要がある場合は、おそらく問題ありません。しかし、2つのライブラリが同様の要件を持ち、競合して実行されていることを想像できます。

于 2013-03-07T19:16:14.340 に答える