有人可以向我解释以下代码的作用。我是编程新手。我很难理解“当前对象”的含义。 此代码包含在实现Compareable接口的类中。它有一个conscutor,它接受一个int数字和String描述。它还有一个数字和描述的get方法。
@Override
public int compareTo (Object o)
{
Item i = (Item) o;
if (this.getNumber () < i.getNumber())
return -1;
if (this.getNumber () > i.getNumber())
return 1;
return 0;
答案 0 :(得分:3)
Item i = (Item) o;
此行将传入的对象 o 强制转换为项类,然后将其存储在 i 上。
if (this.getNumber () < i.getNumber())
此行将您正在接收的对象与您正在调用该方法的进行比较,特别是其数字字段。
return 0;
只有在以前的条件都不满足时才会到达此行。在这种情况下,当this.getNumber()等于i.getNumber()时,它返回0。
int x = objectOne.compareTo(objectTwo);
此假设行会将相应的返回值分配给 x 。
例如,如果objectOne.getNumber()小于objectTwo.getNumber(),则x将被赋予-1值。
答案 1 :(得分:0)
compareTo()
返回int
以指示比较值是大于(1),等于(0)还是小于(-1)。有什么问题?