public class Test {
public static void main(String[] args) {
Integer obj1 = Integer.valueOf(12);
Integer obj2 = Integer.valueOf("12");
System.out.println(obj1.intValue() + " " + obj2.intValue());
Integer obj3 = Integer.valueOf("1010", 2);
Integer obj4 = Integer.valueOf(1010, 2);//Compile time error.
}
}
//由于valueOf()
方法将String和repective类型都作为参数,但为什么
最后一条语句显示编译时错误,我在尝试使用基数为valueOf()
的方法。
答案 0 :(得分:3)
因为没有这样的超载。阅读文档。
http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html
答案 1 :(得分:1)
虽然这是一个很好的问题,但我不知道为什么你的问题遭到了贬低,可能是因为大多数人都没有看到你的评论!
第一部分确实是正确的Jeroen Vannevel
回答,java-library中没有Integer.valueOf()
这样的重载版本!
java.lang.Integer.valueOf(String s, int radix)
方法返回一个Integer对象,该对象包含使用第二个参数radix给出的基数解析时从指定的String中提取的值。所以,这里String被解析为Integer对象!!!
另一方面,你在谈论Integer.valueOf(1010, 2)
。 数字1010已经是整数,因此无法再次解析回整数!另外,如果你想要BinaryString ---只需使用java.lang.Integer.toBinaryString()
。为了您的满意,如果您仍在考虑解析,请继续执行以下操作: -
结束你怀疑的解决方案是
如何将
Integer.valueOf(1010,16)
再次转换为整数 宾语????它将包含字符串(3F2
的十六进制表示 - 请参见此处的F)!!! 我希望你有理由!!! 因此,java库中没有提供。