我在这里没有看到这个确切的问题,这让我感到惊讶。
以下内容将无法编译:
public int compareTo( Object o )
{
if ( this.order < ((Category o).order) )
{
return -1;
}
else if ( this.order > ((Category o).order) )
{
return 1;
}
else
{
return 0;
}
}
而更改此设置以强制转换对象并将其引用存储在条件语句之外的新对象中可以解决此问题:
Category cat = ( Category )o;
if ( this.order < cat.order )
// Etc...
我的问题是,为什么 Java 不允许这种行为? (特别是 Java 5)
编辑:啊哈!谢谢你们。该死的现代 IDE 给出了模糊的错误消息。我开始对它们打折,但这一次对我没有任何好处。 (Netbeans 警告我缺少括号和分号......)
这里的问题是你的语法不正确。它应该是
public int compareTo( Object o )
{
if ( this.order < ((Category) o).order )
{
return -1;
}
else if ( this.order > ((Category) o).order )
{
return 1;
}
else
{
return 0;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)