Java 双值用作StringBuilder的参数';s deleteCharAt()方法
我正在准备Oracle员工认证,正在阅读以下书籍: Oracle认证助理,Java SE7程序员学习指南 在第77页,有一个知识测试,有以下问题: 鉴于以下声明: StringBuilder sb=新的StringBuilder() 以下哪项是sb变量的有效使用 a。sb.追加(34.5);Bsb.deleteCharAt(34.5);C某人(3);D 某人扭动弹簧() 我认为正确的答案是a&d 但这本书给出了答案: a、 b和d没有StringBuilder-toInteger方法 没有其他解释 所以,我去检查了源代码,这里是:Java 双值用作StringBuilder的参数';s deleteCharAt()方法,java,stringbuilder,Java,Stringbuilder,我正在准备Oracle员工认证,正在阅读以下书籍: Oracle认证助理,Java SE7程序员学习指南 在第77页,有一个知识测试,有以下问题: 鉴于以下声明: StringBuilder sb=新的StringBuilder() 以下哪项是sb变量的有效使用 a。sb.追加(34.5);Bsb.deleteCharAt(34.5);C某人(3);D 某人扭动弹簧() 我认为正确的答案是a&d 但这本书给出了答案: a、 b和d没有StringBuilder-toInteger方法 没有其他解
279 public StringBuilder deleteCharAt(int index) {
280 super.deleteCharAt(index);
281 return this;
282 }
将int
作为参数,该方法不会在其他任何地方重载
你知道书中对这个“更正”的解释吗?对于上面给出的例子
sb.deleteCharAt(34.5)
编译器说
类型StringBuilder中的方法deleteCharAt(int)不可用
适用于参数(双精度)
那么这本书的答案是错误的。这是书中的错误。你的答案是正确的,应该是a&d。这里有一个链接, 并找到以下勘误表标题(大约在页面中间):
勘误表类型:技术|页码:297 |勘误表日期:2013年2月5日老实说,这本书似乎有错误,您可能需要联系出版商 虽然可以将34.5转换为整数,但会失去精度,但答案B中不会出现这种情况