Java中的包装器

时间:2014-08-31 10:41:55

标签: java

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()的方法。

2 个答案:

答案 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库中没有提供。