为什么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 clazz
或Class cls
。
它归结为实际的编译器及其区分上下文中令牌含义的能力。 但是,在这种特殊情况下,编译器无法区分不同的上下文中令牌class
含义。 不pipe上下文如何, class
都被用来表示一个阶级的声明,这是一条硬而快的规则,因此它是一个保留字。 这是简单的和低层次的。
如果你觉得不得已,你可以编写你自己的Java编译器来包含一个上下文规则,它允许你使用class
作为variables名。 虽然我认为用你的时间来使用clazz
或klass
会好得多,但这也可能对你的健康有好处。
这是从哪里来的?
我在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之类的替代名称。