为什么当我使用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:感谢帮助人员!
答案 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)
parseInt
是Integer
类中的静态方法。你称之为
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 ???
你也应该总是说Integer.parseInt(),你不能直接调用parseInt。
答案 6 :(得分:0)
是的,你也可以静态导入它:
import static java.lang.Integer.parseInt;