Java api - 以_ [下划线]开头的类名

时间:2014-02-17 09:36:20

标签: java api classname

我很有兴趣知道这是因为它们是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 个答案:

答案 0 :(得分:7)

  

通常,在变量名称中使用“_”表示它们是实例变量或用于其他特殊目的

不是Java。由于成员变量的构造函数语法,C ++中需要这种约定。 Java中没有这样的要求,因此很少使用它,只有看起来认为它们仍在用C ++编程的人才会使用。

你提到的类都是由OMG在20世纪90年代早期根据CORBA IDL强加的命名限制定义的,这又与Java无关。

答案 1 :(得分:5)

这些类不是真正的Java类,它们是CORBA实现的一部分,并且是从与编程语言无关的IDL定义生成的 - 命名约定是CORBA类。

答案 2 :(得分:2)

没有特别的理由,这也是一个品味问题。

但是,如果您想完全遵循Java Naming Conventions,则应避免将_附加到班级名称。

_附加到类成员也是多余的,大多数IDE使用不同的颜色为这些字段着色,您可以轻松地将它们与局部变量区分开来。我看到这段代码更优雅:

public MyConstructor(int field) {
    this.field = field;
}

public MyConstructor(int field) {
    _field = field;
}

但同样,它仍然是一个品味的东西,可能是你的公司使用它,所以你不想成为第一个打破它的人。

答案 3 :(得分:0)

Naming Conventions for Packages, Class and variables

这是编写java代码时应遵循的命名约定表。

您可以通过' _'来启动课程名称。但不建议这样做。