java api中接口命名的标准是什么

vij*_*had 8 java java-api

一位同事问我有关Throwablejava API中的类的问题.

按照标准,我明白,每个结尾的单词都是java API中的一个接口.关于使用诸如接口名称之类的单词存在行业标准.所以,我在不知不觉中告诉他这是java世界中所有异常和错误类型的基本接口.然后他向我展示了这个类的java文件.

我的问题:

  1. 为什么java人选择这个名字作为一个类.我认为这应该是默认的界面?

  2. 这是一种使用*能够用作界面的模式吗?

  3. 是否还有其他以*able结尾的课程示例?

问候.

Dan*_*iuc 29

名词总是用于命名类,但Throwable是一个例外.

(看看我在那里做了什么?)


wkl*_*wkl 22

这些'-able'名称通常是Java中的接口,但是我没有发现接口命名的官方约定,这表明'-able'名称应该是接口名称,尽管通常就是这种情况.

官方Java命名约定可以在这里找到 - 它非常精简,对类或接口命名没有任何限制:

至于你的Throwable问题,James Gosling曾经回答过为什么它是一个类而不是一个接口,即使这个名字更适合一个界面.

不幸的是,Sun/Oracle网站上的原始文章已经消失在互联网上,所以我只能提供间接归因:

编辑:由于我继续得到这个问题,我通过Wayback Machine找到了Sun讨论的链接,在这里:http://web.archive.org/web/20071013225816/http://java.sun.com /features/2002/03/gosling.html?source=jdc_news&date=20020430

JDC:为什么Throwable不是界面?这个名字有点暗示它应该是.能够捕获类型,即try {} catch(),而不仅仅是类.这将使Java编程语言更加灵活.

JG:Throwable和其他人不是接口的原因是因为我们决定,或者我很早就决定了.我决定我希望某个状态与每个被抛出的异常相关联.你不能用接口做到这一点; 你只能用课程来做.那里的状态基本上是标准的.有消息,有一个快照,像那样的东西总是在那里.而且,如果你让Throwable成为一个界面,那么诱惑就是分配,使任何旧对象成为一个Throwable的东西.从风格上来说,投掷一般物体可能是一个坏主意,你想抛出的东西确实应该是那些真正捕捉异常性质和发生的事情的异常事物.他们'