最近在看java的集合。发现一个问题。在java里一般“动词”都是加s的,比如extends,implementes,这符合英语第三人称动词加s的规范。Collection接口中提供的几个方法:add(),remove()等是没有加s的,但是contains()却又加了s。我有点搞不懂了,难道这个s是随便加的,当时编写API的时候,就连命名都不统一?求解!

解决方案 »

  1.   

    你的好奇心还挺好的来,没有考虑过这个问题···如果这样的话,contains还应该命名成isContains()比较合适的
      

  2.   

    那API也是由很多人一起开发的啊,不可能每个人的命名习惯都相同,即使有规范,也不能定得那么细啊,所以肯定会有差别的.
      

  3.   

    有一些加s是表示为工具类,里面有很多可以直接使用的方法。如Collections里面就提供了对集合的操作方法,使用很方便。
      

  4.   

    JAVA 有命名规范么,好像木有统一的啊,就算C 也有驼峰,匈牙利一坨坨的啊
      

  5.   

    isXxx()感觉是返回对象的一个属性值,倒是很少见到用于返回值是布尔类型的函数的函数名是isXxx的形式。可能是我代码见得少的缘故。
      

  6.   

    isXxx()感觉是返回对象的一个属性值,倒是很少见到用于返回值是布尔类型的函数的函数名是isXxx的形式。可能是我代码见得少的缘故。
    isXxx()一般是是否的意思,是否有效,是否激活,是否存在···
      

  7.   

    contains()函数返回的是状态,性质类似于isXXX()这样的,英语A contains B表达的就是A包含B的状态
    add(),remove()不一样,它们指示对象去完成动作,是一种祈使句
    你仔细感受下,是不是这样
      

  8.   

    真是想多了,如果真想表达的更清楚,方法名应该写成removeItemFromA
      

  9.   

    加s表示是别人定义的,不加s表示是自己主动发出的。
    比如
    public void test() throws IOException{
     ...
     ...
          throw new Exception("");
     ...
    }
      

  10.   

    1:带有判断含义的方法动词,都使用第三人称单数,或者是第三人称单数形式的动界、动宾短语,常见的有 equals, contains, exists, matches, startsWith, endsWith, containsAll 等等2:数据类型转换方法,一般为“to + 类型”,比如 toString 等等3:对于普通的方法,一般采用动词原形,后面可以跟名词,也可不跟,比如 add, put, set, get, parse, parseInt,  等等。