我想把这段简单的c#代码转换成java:
public int CompareTo(object obj)
{
return _destIndex.CompareTo(((DiffResultSpan)obj)._destIndex);
}
和我的Java代码是:
public int compareTo(object obj)
{
return destIndex.compareTo(((DiffResultSpan)obj).destIndex);
}
但是我的代码有错误:"int不能被解引用"。我用net-beans编码。显然这是真的。但我不知道我该怎么办?!!
感谢哦,谢谢。我找到了!Int在Java中不是object。我应该转换它!例如:
new Integer(destIndex).compareTo...
Java中的int
是一个基本类型,这意味着它没有方法或字段。如果您希望compare方法基于一个int
比较两个对象,那么以下操作应该可以:
return destIndex - ((DiffResultSpan)obj).destIndex;
如果destIndex
可能是负的,有整数溢出的机会,所以你必须做:
int otherIndex = ((DiffResultSpan)obj).destIndex;
return destIndex < otherIndex ? -1 : (destIndex > otherIndex ? 1 : 0);