Java api - Имена классов, начинающиеся с _ [подчеркивание]
Мне интересно это знать, поскольку они являются частью Java API [J2SE].
Обычно принято использовать "_" в имени переменной, чтобы указать, что это переменная экземпляра или для какой-то другой специальной цели [но это явно зависит от вкуса программиста].
Но в Java API [J2SE] перечислено несколько классов, имена которых начинаются с подчеркивания ("_").
Неужели у Oracle есть какое-то особое значение / цель для этого подчеркивания? [Если да, то] Почему эти классы отличаются по сравнению с другими классами в том же API?
http://docs.oracle.com/javase/7/docs/api/
_BindingIteratorImplBase
_BindingIteratorStub
_DynAnyFactoryStub
_DynAnyStub
_DynArrayStub
_DynEnumStub
_DynFixedStub
_DynSequenceStub
_DynStructStub
_DynUnionStub
_DynValueStub
_IDLTypeStub
_NamingContextExtStub
_NamingContextImplBase
_NamingContextStub
_PolicyStub
_Remote_Stub
_ServantActivatorStub
_ServantLocatorStub
4 ответа
Эти классы на самом деле не являются классами Java, они являются частью реализации CORBA и генерируются из независимых от языка программирования определений IDL - соглашение об именах является CORBA.
Обычно принято использовать "_" в имени переменной, чтобы указать, что это переменная экземпляра или для какой-то другой специальной цели.
Не на Яве. Соглашение такого рода требуется в C++ из-за синтаксиса конструктора для переменных-членов. В Java такого требования нет, следовательно, оно используется редко, и только люди, которые, кажется, думают, что все еще программируют на C++.
Все упомянутые вами классы были определены OMG в начале 1990-х годов в соответствии с ограничением именования, введенным в CORBA IDL, что опять-таки не имеет ничего общего с Java.
Опять же, для этого нет особой причины... это вопрос вкуса.
Однако, если вы хотите полностью следовать соглашениям об именах Java, следует избегать добавления _
к названию класса.
Излишне добавлять _
Для членов класса большинство IDE окрашивают эти поля другим цветом, и вы можете легко отличить их от локальных переменных. Я вижу этот кусок кода более элегантным:
public MyConstructor(int field) {
this.field = field;
}
чем
public MyConstructor(int field) {
_field = field;
}
Но опять же, это по-прежнему вопрос вкуса, и, возможно, ваша компания работает с ним, поэтому вы не хотите быть первым, кто сломает его.
Вот таблица соглашения об именах, которой нужно следовать при написании кода Java.
Вы можете начать имя класса с "_", но это не рекомендуется.