/**
*
*/
package math.utils;
/**
* Collected methods which allow easy implementation of equals.
* Rewritten from http://www.javapractices.com/topic/TopicAction.do?Id=17.
*
* Example use case in a class called Car:
*
public boolean equals(Object aThat){
if ( this == aThat ) return true;
if ( !(aThat instanceof Car) ) return false;
Car that = (Car)aThat;
return
EqualsUtil.areEqual(this.name, that.name) &&
EqualsUtil.areEqual(this.numDoors, that.numDoors) &&
EqualsUtil.areEqual(this.gasMileage, that.gasMileage) &&
EqualsUtil.areEqual(this.color, that.color) &&
Arrays.equals(this.maintenanceChecks, that.maintenanceChecks); //array!
}
*
*
* Arrays are not handled by this class.
* This is because the Arrays.equals methods should be used for
* array fields.
*/
public final class EqualUtils {
static public boolean areEqual(boolean aThis, boolean aThat){
//System.out.println("boolean");
return aThis == aThat;
}
static public boolean areEqual(char aThis, char aThat){
//System.out.println("char");
return aThis == aThat;
}
static public boolean areEqual(long aThis, long aThat){
/*
* Implementation Note
* Note that byte, short, and int are handled by this method, through
* implicit conversion.
*/
//System.out.println("long");
return aThis == aThat;
}
static public boolean areEqual(float aThis, float aThat){
//System.out.println("float");
return Float.floatToIntBits(aThis) == Float.floatToIntBits(aThat);
}
static public boolean areEqual(double aThis, double aThat){
//System.out.println("double");
return Double.doubleToLongBits(aThis) == Double.doubleToLongBits(aThat);
}
/**
* Possibly-null object field.
*
* Includes type-safe enumerations and collections, but does not include
* arrays. See class comment.
*/
static public boolean areEqual(Object aThis, Object aThat){
//System.out.println("Object");
return aThis == null ? aThat == null : aThis.equals(aThat);
}
}
Ads help maintain this website.