我正在准备Oracle Associate Certification并正在阅读以下书籍:
Oracle认证助理,Java SE7程序员学习指南
在第77页,有一个知识测试,其中包含以下问题:
鉴于以下声明:
StringBuilder sb = new StringBuilder();
以下哪项是sb变量的有效用途?
一个。 sb.append(34.5);湾sb.deleteCharAt(34.5); C。 sb.toInteger(3); d。 sb.toString();
我认为正确的答案是& d。
但是,这是本书的答案:
a,b和d没有StringBuilder toInteger方法。
没有其他解释。
所以,我去检查源代码,这里是:
279 public StringBuilder deleteCharAt(int index) {
280 super.deleteCharAt(index);
281 return this;
282 }
以int
为参数,方法不会在其他任何地方超载。
你知道对此的解释"更正"在书中?
答案 0 :(得分:1)
对于上面给出的示例sb.deleteCharAt(34.5)
编译器说
StringBuilder类型中的方法deleteCharAt(int)不是 适用于参数(双)
然后这本书的答案是错误的。
答案 1 :(得分:1)
这本书是个错误。你的答案是正确的,它应该只是一个& d。这是一个链接,
global prec
ision setting
并找到以下勘误标题(大约在页面中间):
勘误类型:技术|页码:297 |勘误日期:2013年2月5日
答案 2 :(得分:1)
老实说,这看起来像书中的错误,您可能想要联系发布商。
虽然你可以将34.5转换为int,但是失去了精度,但它没有在答案B中发生。