Why do Java programmers like to name a variable "clazz"? [closed]
I've seen lots of code with declarations like Class clazz
. Where does this originate from? Is this some kind of convention? I think ‘clazz’ is not even an English word, has no meaning at all, how can so many programmers name a wrong name coincidentally?
Solution 1:
clazz
has been used in Java in place of the reserved word "class" since JDK 1.0. "class" is what you want, but abbreviating or inserting junk ("a", "the", "_", etc) reduces clarity. clazz
just says class. "International" English speakers (those reading both British and American English) are used to transposing 's' and 'z'.
Since Java has had disclosed source and a suitable culture right from the start, worthwhile Java code and tutorials pick up the same conventions. That's one of the great things about the Java ecosystem, which I think has been an important part of its success.
Solution 2:
Because they cannot use the word they want to use which is class
. It is reserved.
Solution 3:
It's simply because 'class' is a reserved keyword, hence Class class
isn't allowed. Therefore you'll see Class clazz
or Class cls
.
Solution 4:
It comes down to the actual compiler and its ability to distinguish what a token means within its context. However, in this particular case, it is the compiler's inability to distinguish what the token class
means in a different context. It is a hard and fast rule that class
, regardless of its context, is used to denote the declaration of a class, and as such it is a reserved word. That is as simple and as low-level as it gets.
If you feel compelled, you could write your own Java compiler to include a contextual rule that will allow you to use class
as a variable name. Though I think it would be far better use of your time to just use clazz
or klass
-- it would probably be good for your health as well.
Solution 5:
where does this originate from ?
I saw it first at Josh Bloch's puzzlers. But I'm pretty sure it was used much earlier by other developers. Josh Bloch just made it more famous.