I have this version comparison function in java. Any cleaner way to write this without all the nested 'if' statements? Note that the suggestions must be in Java code only.@Overridepublic int compareTo(Version o){    int result = this.major.compareTo(o.major);    if (result == 0)    {        result = this.minor.compareTo(o.minor);        if (result == 0)        {            result = this.minor2.compareTo(o.minor2);            if (result == 0)            {                result = this.suffix.compareTo(o.suffix);            }        }    }    return result;}Edit: Just to be clear on the 'type' of the fields of the Version class:Integer major, minor, minor2;String suffix;
Version comparison function
java
If you expect often, that two versions will be the same reference, you could start your method with a check for that. And you may strip the noisy 'this'. However, the cascading nature of the check is pretty fine expressed in the nesting - I would keep it.@Overridepublic int compareTo (Version o){    if (this == o)        return 0;    int result = major.compareTo (o.major);    if (result == 0)    {        result = minor.compareTo (o.minor);        if (result == 0)        {            result = minor2.compareTo (o.minor2);            if (result == 0)            {                result = suffix.compareTo (o.suffix);            }        }    }    return result;}