web-dev-qa-db-ja.com

なぜJavaプログラマは変数に「clazz」という名前を付けるのが好きですか?

私は多くのコードがClass clazzのような宣言を持っているのを見ましたが、これはどこから来たのですか?これはある種の慣習ですか? 「clazz」は英語の単語でさえなく、まったく意味がありません。どうして多くのプログラマが偶然間違った名前を付けることができるのでしょうか?

142
Sawyer

clazzは、JDK 1.0以降、予約語「クラス」の代わりにJavaで使用されています。 「the」、「_」など)は明瞭さを低下させます。clazzは単にクラスを示します。

Javaは最初からソースと適切な文化を開示していたので、価値のあるJavaコードとチュートリアルは同じ規則を採用しています。それは素晴らしいことの1つです。 Javaエコシステムについて。これは成功の重要な部分だと思う。

159

使用したいWordを使用できないため、classです。予約されています。

66
James K Polk

それは単に「クラス」が予約キーワードであるためです。したがって、Class classは許可されていません。したがって、Class clazz または Class cls

16
sfussenegger

それは、実際のコンパイラと、そのコンテキスト内でトークンが何を意味するかを区別する能力に帰着します。ただし、この特定のケースでは、異なるコンテキストでのトークンclassの意味を区別するのはコンパイラーのinabilityです。 classは、そのコンテキストに関係なく、クラスの宣言を示すために使用されるという厳格な規則であるため、予約済み Wordです。それは簡単で低レベルです。

やむを得ない場合は、変数名としてclassを使用できるコンテキスト規則を含める独自のJavaコンパイラーを作成できます。 clazzまたはklassを使用するだけで時間を有効に活用できます。これはおそらくあなたの健康にも良いでしょう。

7
John

これはどこから来たのですか?

Josh Blochのパズルゲームで最初に見ました。しかし、他の開発者によってずっと早く使用されたと確信しています。ジョシュ・ブロッホはそれをもっと有名にした。

4
Roman

Javaには、@プレフィックスを持つC#とは異なり、キーワードを識別子として使用できる機能がありません(たとえば、@classは有効な識別子です)。

4
finnw

宣言Class clazzは、Java worldで人気がありますが、初心者やスペルチェッカーにとっては扱いにくいかもしれません。 最小の驚きの原理

Classオブジェクト type を表すと言うことができるので、個人的には、そのような変数をClass typeとして宣言することを好みます。

2
Michal Kordas

それは単なる英語の単語であり、キーワードクラスキーワードに置き換えられ(同等)、人々にそれがクラスであることを理解させます。そして、それはほとんどコードの読みやすさを向上させることです

これに関係する大きなロジックはありません

2
gmhk

クラスはタイプヘッダーであるため、clazzを使用します。たとえば、ここでクラスを使用します。

public class HelloWorld {

そしてここ:

Object.class.getName();

残念ながら、clazzなどの代替名を使用する必要があります。

0
Romejanic