Почему Java-программисты любят называть переменную "clazz"?

Я видел, что многие коды имеют декларацию типа Class clazz, откуда это происходит? Это какая-то конвенция? Я думаю, что "clazz" - это даже не английское слово, не имеет никакого значения, как может так много программистов назвать неправильное имя по совпадению?

Ответ 1

clazz используется в Java вместо зарезервированного слова "класс" начиная с JDK 1.0. "class" - это то, что вы хотите, но сокращение или вставка мусора ("a", "the", "_" и т.д.) снижает ясность. clazz просто говорит класс. "Международные" носители английского языка (те, кто читает как британский, так и американский английский) привыкли переносить буквы "s" и "z".

Поскольку Java с самого начала раскрыла исходный код и подходящую культуру, достойный Java-код и учебные пособия выбирают те же соглашения. Это одна из замечательных особенностей экосистемы Java, которая, я думаю, была важной частью ее успеха.

Ответ 2

Потому что они не могут использовать слово, которое они хотят использовать, которое является class. Это зарезервировано.

Ответ 3

Это просто потому, что "класс" является зарезервированным ключевым словом, поэтому Class class не разрешено. Поэтому вы увидите Class clazz или Class cls.

Ответ 4

Это сводится к фактическому компилятору и его способности отличать то, что означает токен в его контексте. Однако в этом конкретном случае неспособность компилятора отличить то, что означает токен class в другом контексте. Это жесткое и быстрое правило, что class, независимо от его контекста, используется для обозначения объявления класса, и как таковое это слово зарезервировано. Это так же просто и низкоуровнево, как и получается.

Если вы чувствуете себя вынужденным, вы можете написать свой собственный компилятор Java, чтобы включить контекстное правило, которое позволит вам использовать class как имя переменной. Хотя я думаю, что было бы гораздо лучше использовать ваше время, чтобы просто использовать clazz или klass - это, вероятно, было бы полезно и для вашего здоровья.

Ответ 5

где это происходит из?

Я впервые увидел это в головоломках Джоша Блоха. Но я уверен, что он использовался гораздо раньше другими разработчиками. Джош Блох просто сделал его более известным.

Ответ 6

В Java нет функции, позволяющей использовать ключевое слово как идентификатор, в отличие от С# с префиксом @ (например, @class является допустимым идентификатором.)

Ответ 7

Это просто замененное английское слово (Equavalent) по ключевому слову ключевого слова, чтобы люди поняли, что это класс. и это почти увеличивает читаемость кода

Ничего великого Логика, участвующего в этом

Ответ 8

Объявление Class clazz популярно в мире Java, но может быть неудобно для новичков и орфологов. Я слышал, что некоторые люди говорили, что этого следует избегать в соответствии с принцип наименьшего удивления.

Как можно сказать, что объект Class представляет тип, я лично предпочитаю объявлять такие переменные, как Class type.

Ответ 9

Мы используем clazz, потому что класс является заголовком типа. Например, вы используете класс здесь:

public class HelloWorld {

и здесь:

Object.class.getName();

К сожалению, нам нужно использовать альтернативные имена, такие как clazz.

Ответ 10

Проще говоря, у class есть класс, clazz нет у clazz.