Skip to content

Instantly share code, notes, and snippets.

@danmana
Created November 24, 2016 15:17
Show Gist options
  • Save danmana/c70764c454e23a3148bc1441e0256c9d to your computer and use it in GitHub Desktop.
Save danmana/c70764c454e23a3148bc1441e0256c9d to your computer and use it in GitHub Desktop.
IntelliJ Equals template (Java 7+)
#set ($checkParameterWithInstanceof = true)
#set($classInstanceName = $helper.getUniqueLocalVarName("other", $fields, $settings))
#set($paramName = $helper.getUniqueLocalVarName("obj", $fields, $settings))
#set($settings.generateFinalLocals = true)
public boolean equals(##
#if ($settings.generateFinalParameters)
final ##
#end
Object $paramName){
if (this == $paramName) {
return true;
}
if ($paramName == null) {
return false;
}
if (!($paramName instanceof $classname)) {
return false;
}
#if ($superHasEquals)
if(!super.equals($paramName)) {
return false;
}
#end
#addClassInstance()
return ##
#set($i = 0)
#foreach($field in $fields)
#if ($i > 0)
&&
#end
#set($i = $i + 1)
#if ($field.primitive)
#if ($field.double || $field.float)
#addDoubleFieldComparisonConditionDirect($field) ##
#else
#addPrimitiveFieldComparisonConditionDirect($field) ##
#end
#elseif ($field.enum)
#addPrimitiveFieldComparisonConditionDirect($field) ##
#elseif ($field.array)
java.util.Arrays.equals($field.accessor, ${classInstanceName}.$field.accessor)##
#else
java.util.Objects.equals($field.accessor, ${classInstanceName}.$field.accessor)##
#end
#end
;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment