这怎么合法


System.out.println("".valueOf(1121997));



  这是非法的


System.out.println(1.valueOf("1121997"));

最佳答案

因为“”是字符串。字符串类具有valueOf方法,因此可以调用它。

对于您的老问题,

System.out.println( 1.valueOf("1121997"));


这里1是原始整数值,而不是Integer Wrapper类。您不能在原始数据类型上调用method。

对于您更新的问题,

System.out.println((Integer) 1.valueOf("1121997"));


在这里,您需要在(Integer)1处加上其他()。

System.out.println(((Integer) 1).valueOf("1121997"));


另外,valueOf()是静态方法。用实例调用它不是一个好习惯。您应该使用类似的类名直接调用它

Integer.valueOf("1121997");

关于java - 在实例值上调用此静态方法怎么错?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43834585/

10-12 21:28