Java parseInt()问题

时间:2011-08-09 05:33:38

标签: java parseint

为什么当我使用parseInt时:

private String certainNumber;

public int getNumber()
{
    return Integer.parseInt(certainNumber);
}

它编译。<​​/ p>

但如果我这样做:

public String getStreetNumber()
{
    return streetNumber;
}

和parseInt返回的值如下:

@Override
public int compareTo(Object o) 
{
    Address tempAddress = (Address)o;
    if(Integer.parseInt(getStreetNumber()) < tempAddress.Integer.parseInt(getStreetNumber()))
    {
        return -1;
    }
... // etc.
}

它不编译?

编辑:试过建议......还是没有编译?

edit2:感谢帮助人员!

7 个答案:

答案 0 :(得分:4)

这是因为parseInt是属于Integer类的方法:您必须将其称为Integer.parseInt(value);。我非常怀疑你的自定义类中有一个parseInt函数(我怀疑这是Address类的所有部分吗?)或tempAddress实例。

试试这个:

public int compareTo(Object o) 
{
    Address tempAddress = (Address)o;
    if(Integer.parseInt(getStreetNumber()) < 
          // you need to parse the return value of tempAddress's getStreetNumber() 
          // not get the tempAddress's parseInt of this.getStreetNumber()
          Integer.parseInt(tempAddress.getStreetNumber()))
    {
        return -1;
    }
 // etc...
}

答案 1 :(得分:3)

因为您致电parseInt()而不是Integer.parseInt()

答案 2 :(得分:2)

parseIntInteger类中的静态方法。你称之为 Integer.parseInt(the_string_you_want_to_parse)

如果要解析由另一个类中的方法返回的字符串,则将其称为 Integer.parseInt(tempAddress.getStreetNumber())

答案 3 :(得分:1)

其他人回答了你的直接问题,但请允许我说,这是一种非常干净的方式来做你想做的事情:

return Integer.valueOf(getStreetNumber())
    .compareTo(
       Integer.valueOf(tempAddress.getStreetNumber()));

Integer已经实现了Comparable,所以你也可以利用它。

答案 4 :(得分:0)

if(Integer.parseInt(getStreetNumber())

答案 5 :(得分:0)

如何在地址引用上调用parseInt ???

  • &GT; if(parseInt(getStreetNumber())&lt; tempAddress.parseInt(getStreetNumber()))

你也应该总是说Integer.parseInt(),你不能直接调用parseInt。

答案 6 :(得分:0)

是的,你也可以静态导入它:

import static java.lang.Integer.parseInt;