JDK:java中的命名约定。可丢弃的
Java中的所有接口,如Serializable, Cloneable, Observable
等,都以“-able”作为后缀。然而,java.lang.Throwable
不是一个接口,而是一个类
我理解java.lang.Throwable
的用法,但我不理解它为什么以这种方式命名。这种异常现象有具体原因吗
你可以在下面搜索框中键入要查询的问题!
Java中的所有接口,如Serializable, Cloneable, Observable
等,都以“-able”作为后缀。然而,java.lang.Throwable
不是一个接口,而是一个类
我理解java.lang.Throwable
的用法,但我不理解它为什么以这种方式命名。这种异常现象有具体原因吗
# 1 楼答案
它包含了所有可以抛出的东西,就像接口/抽象类一样。我想这应该是使用
-able
后缀背后的逻辑。虽然这不是一个争论点。。。一般来说,您不应该假设任何以able
结尾的东西都是一个接口更新
现实生活中的另一个例子是在我的一个项目中。。。我必须创建一个(抽象的)超类,它的子类可以被缓存(在MemcacheD中)。它抽象了添加、删除、更新缓存所需的所有逻辑。什么是它的好名字?我把它命名为
Cacheable
。想法是如果它是Cacheable
,它将被缓存所以,它只是语义,与命名模式无关。这里给出了Java唯一的命名模式:Java Naming Convention
# 2 楼答案
Sun的前副总裁、Java的主要架构师James Gosling在接受采访时解释了为什么决定将Throwable设置为类而不是接口。主要原因是,throwables需要跟踪状态: