mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-21 22:11:40 +07:00
Java: use Objects.hashCode() for single field JDK7+ hashCode() generation (IDEA-177907)
GitOrigin-RevId: 59011b448a85df06ef0b1a5960ab3bf7c77bc32f
This commit is contained in:
committed by
intellij-monorepo-bot
parent
9bcb2a6194
commit
cfc675690d
@@ -1,6 +1,10 @@
|
||||
public int hashCode() {
|
||||
#if (!$superHasHashCode && $fields.size()==1 && $fields[0].array)
|
||||
return java.util.Arrays.hashCode($fields[0].accessor);
|
||||
#if (!$superHasHashCode && $fields.size()==1)
|
||||
#if ($fields[0].array)
|
||||
return java.util.Arrays.hashCode($fields[0].accessor);
|
||||
#else
|
||||
return java.util.Objects.hashCode($fields[0].accessor);
|
||||
#end
|
||||
#else
|
||||
#set($hasArrays = false)
|
||||
#set($hasNoArrays = false)
|
||||
@@ -20,7 +24,7 @@ public int hashCode() {
|
||||
#end
|
||||
#foreach($field in $fields)
|
||||
#if ($i > 0)
|
||||
, ##
|
||||
, ##
|
||||
#end
|
||||
$field.accessor ##
|
||||
#set($i = $i + 1)
|
||||
@@ -41,7 +45,7 @@ public int hashCode() {
|
||||
#foreach($field in $fields)
|
||||
#if(!$field.array)
|
||||
#if ($i > 0)
|
||||
, ##
|
||||
, ##
|
||||
#end
|
||||
$field.accessor ##
|
||||
#set($i = $i + 1)
|
||||
@@ -60,7 +64,7 @@ public int hashCode() {
|
||||
#if ($resultDeclarationCompleted)
|
||||
$resultName ##
|
||||
#end
|
||||
= ##
|
||||
= ##
|
||||
#if ($resultAssigned)
|
||||
31 * $resultName + ##
|
||||
#end
|
||||
|
||||
@@ -13,6 +13,6 @@ class A {
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(a);
|
||||
return Objects.hashCode(a);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
import java.util.Objects;
|
||||
|
||||
class X {
|
||||
private String s = null;
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
final X x = (X) o;
|
||||
return Objects.equals(s, x.s);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hashCode(s);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
class X {
|
||||
private String s = null;
|
||||
}
|
||||
@@ -134,6 +134,10 @@ public class GenerateEqualsTest extends LightJavaCodeInsightTestCase {
|
||||
doTestWithTemplate(EqualsHashCodeTemplatesManager.JAVA_UTIL_OBJECTS_EQUALS_AND_HASH_CODE);
|
||||
}
|
||||
|
||||
public void testSingleFieldWithObjectsTemplate() {
|
||||
doTestWithTemplate(EqualsHashCodeTemplatesManager.JAVA_UTIL_OBJECTS_EQUALS_AND_HASH_CODE);
|
||||
}
|
||||
|
||||
public void testArrayAndNotOnlyArrayWithObjectsTemplate() {
|
||||
doTestWithTemplate(EqualsHashCodeTemplatesManager.JAVA_UTIL_OBJECTS_EQUALS_AND_HASH_CODE);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user