我已经看到一些遗留代码length在某些对象上使用属性,而其他对象使用length()方法.目前我有工作NodeList从org.w3c.dom包装,我发现它有getLength()让元件的数量方法.
我的问题是如何为Java开发者,我可以知道如何确定何时使用length,length(),size(),getLength()?很明显,它取决于对象类型,而API则用于读取...但重点是Java Development如何选择在其类中实现哪些.
注意:在问题何时使用.length vs .length() Makoto答案表示这.length是数组上的属性.这不是方法调用,length()而是对String的方法调用.但是,原因何在?为什么不使用任何方法或永远属性来维护所有API的一致性.
Java开发人员如何选择在他们的类中实现哪些[方法]?
当您实现包含其他对象的类时,它几乎总是如此size(),即Collection接口提供的方法.
就其他选择而言,你应该避免暴露成员变量,即使是最终变量,因为它们不能通过接口访问.由于一些JVM技巧,Java因数组而无法使用它,但是你无法做到这一点.因此,length应该是:它仍然存在于Java中,因为从第一天开始就不可能改变语言中那些基本的东西,但它绝对不是设计新类时应该考虑的东西.
当您实现自己的具有长度的类型(例如,矩形或线段)时,您应该更喜欢getLength()使用length()Java Beans命名约定.
显然它取决于对象类型和API是否有阅读...
您已经自己回答了问题:查看您正在使用的任何课程的API文档.
但关键是Java Development如何选择在其类中实现哪些.
Java标准库中的类是由不同的人在很长一段时间内开发的,这些类并不总是对方法名称做出相同的选择,因此存在不一致性,不幸的是你只需要接受它.