为什么Java程序员喜欢命名variables“clazz”?

我见过很多代码都有类似Class clazz ,这是从哪里来的? 这是一种约定吗? 我认为“clazz”甚至不是一个英文单词,根本就没有意义,那么这么多程序员怎么巧合地错误地命名呢?

从JDK 1.0开始, clazz已经在Java中用来代替保留字“class”。 “class”是你想要的,但是缩写或插入垃圾(“a”,“the”,“_”等)会降低清晰度。 clazz只是说上课。 “国际”英语使用者(英文和美文读者)用于转换's'和'z'。

由于Java从一开始就已经公开了源代码和合适的文化,值得一提的Java代码和教程也采用相同的约定。 这是Java生态系统的重大事件之一,我认为这是它成功的一个重要部分。

因为他们不能使用他们想要使用的那个'class'这个词。 它是保留的。

这只是因为'class'是一个保留关键字,所以Class class是不允许的。 因此,您将看到Class clazzClass cls

它归结为实际的编译器及其区分上下文中令牌含义的能力。 但是,在这种特殊情况下,编译器无法区分不同的上下文中令牌class含义。 不pipe上下文如何, class都被用来表示一个阶级的声明,这是一条硬而快的规则,因此它是一个保留字。 这是简单的和低层次的。

如果你觉得不得已,你可以编写你自己的Java编译器来包含一个上下文规则,它允许你使用class作为variables名。 虽然我认为用你的时间来使用clazzklass会好得多,但这也可能对你的健康有好处。

这是从哪里来的?

我在Josh Bloch的困惑中首先看到了它。 但是我非常确定它被其他开发者更早地使用过。 乔什·布洛赫(Josh Bloch)让它更有名。

Java不具有允许您使用关键字作为标识符的function,不像C#带有其@前缀(例如, @ @class是有效的标识符)。

它只是一个由关键字类关键字取代(Equavalent)的英文单词,让人们明白它是一个类。 这几乎是为了增加守则的可读性

没有什么大的逻辑卷入这个

声明Class clazz在Java世界很受欢迎,但对于新手和拼写检查者来说可能会很尴尬。 有些人可以说根据最小的原则应该避免。

正如我们所说的,一个Class对象表示一个types ,我个人更喜欢将这样的variables声明为Class type

我们使用clazz,因为class是一个types标题。 例如,你在这里使用类:

 public class HelloWorld { 

和这里:

 Object.class.getName(); 

所以不幸的是,我们必须使用诸如clazz之类的替代名称。