Я видел, что у многих кодов есть декларация вроде Class clazz
, откуда это происходит? Это какая-то конвенция? Я думаю, что «clazz» даже не является английским словом, не имеет никакого значения, как многие программисты могут случайно назвать неправильное имя?
java
naming-conventions
пильщик
источник
источник
сlass
написание с кириллицейс
.Ответы:
clazz
используется в Java вместо зарезервированного слова «класс» начиная с JDK 1.0. "class" - это то, что вы хотите, но сокращение или вставка мусора ("a", "the", "_" и т. д.) снижает ясность.clazz
просто говорит класс. «Международные» носители английского языка (те, кто читает как британский, так и американский английский) привыкли переносить буквы «s» и «z».Поскольку Java с самого начала раскрыла исходный код и подходящую культуру, достойный Java-код и учебные пособия используют те же соглашения. Это одна из замечательных особенностей экосистемы Java, которая, я думаю, была важной частью ее успеха.
источник
Foo
определенный в области видимости класса иfoo
на местном переменную сфере должно быть законными, но все ссылки на переменный класс областях видимости в пределах объема местного должны требоватьthis.Foo
. Такое правило будет ...someThing
в некоторых местах иsOmEtHiNg
в других.fnord
и поле, вызываемыеfnord
без каких-либо проблем, заглавных букв или бессмысленных слов. Я думаю, что будет достаточно в качестве контрпример.Потому что они не могут использовать слово, которое они хотят использовать, которое есть
class
. Это зарезервировано.источник
Это просто потому, что «класс» является зарезервированным ключевым словом, поэтому
Class class
не допускается. Поэтому вы увидитеClass clazz
илиClass cls
.источник
Class
, так как в каждом конкретном проекте так много классов, что вызывать класс THE кажется бессмысленным. Я также не могу придумать причину, чтобы позвонить вclass
ClassInformation
, илиClassMetadata
или что - то подобное. Каждый класс является классом, но вы не называете их всехClass
, вы называете их по основной функции.Все сводится к фактическому компилятору и его способности различать, что означает токен в его контексте. Однако, в данном случае, это компилятор неспособность различать то , что символические
class
средства в другом контексте. Это жесткое и быстрое правило, котороеclass
независимо от его контекста используется для обозначения объявления класса, и как таковое оно является зарезервированным словом. Это так просто и так низко, как только может.Если вы чувствуете необходимость, вы можете написать свой собственный компилятор Java, чтобы включить контекстное правило, которое позволит вам использовать
class
в качестве имени переменной. Хотя я думаю, что было бы гораздо лучше использовать ваше время, чтобы просто использоватьclazz
илиklass
- это, вероятно, было бы полезно и для вашего здоровья.источник
Сначала я увидел это в загадках Джоша Блоха. Но я почти уверен, что другие разработчики использовали его гораздо раньше. Джош Блох только сделал это более известным.
источник
В Java нет функции, позволяющей использовать ключевое слово в качестве идентификатора, в отличие от C # с его
@
префиксом (например,@class
является допустимым идентификатором).источник
class
и$class
оба являются действительными (но разными) идентификаторами в JVM. Нет идентификатора, который вы можете записать в исходный файл Java, который переводится"class"
в виртуальную машину.Это просто английское слово, замененное (эквивалентное) на ключевое слово класса Keyword, чтобы люди поняли, что это класс. и это почти повысить читаемость кода
Ничего особенного в этом нет.
источник
Декларация
Class clazz
популярна в мире Java, но она может быть неудобной для новичков и проверщиков правописания. Я слышал, как некоторые люди говорили, что этого следует избегать в соответствии с принципом наименьшего удивления .Поскольку можно сказать, что
Class
объект представляет тип , я лично предпочитаю объявлять такие переменные какClass type
.источник
Мы используем clazz, потому что класс является заголовком типа. Например, вы используете класс здесь:
и тут:
К сожалению, мы должны использовать альтернативные имена, такие как clazz.
источник
Проще говоря,
class
есть класс,clazz
который не делает.источник