如果 String 对象是不可变的(因此显然不能改变它的长度),为什么length()
一种方法,而不是简单地public final int length
比如数组中有什么?
它只是一个 getter 方法,还是进行某种计算?
只是想看看这背后的逻辑。
Java 是一个标准,而不仅仅是一个实现。不同的供应商可以以不同的方式许可和实施 Java,只要他们遵守该标准即可。通过对字段进行标准调用,这会非常严重地限制实现,而且没有充分的理由。
就类的未来而言,方法也更加灵活。除了在一些非常早期的 Java 类中之外,几乎从未将 Final 常量公开为对于类的每个实例可以具有不同值的字段,而不是作为方法。
The length()
方法好predates http://www.tns.lcs.mit.edu/manuals/java-1.1.1/api/java.lang.String.html#length%28%29CharSequence 接口,可能来自它的第一个版本。看看效果如何。几年后,在不损失向后兼容性的情况下,引入了 CharSequence 接口,并且可以很好地适应。这对于场来说是不可能的。
因此,让我们真正反转这个问题(当您设计一个打算在几十年内保持不变的类时,您应该这样做):字段在这里获得什么,为什么不简单地使其成为一种方法?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)