Skip to content

Commit 15d45cf

Browse files
nboseckerpivovarit
authored andcommitted
updated code/tests based on feedback (eugenp#676)
1 parent 113afd4 commit 15d45cf

8 files changed

Lines changed: 262 additions & 272 deletions

File tree

eclipse/src/main/java/org/baeldung/equalshashcode/entities/ComplexClass.java

Lines changed: 55 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -5,63 +5,59 @@
55

66
public class ComplexClass {
77

8-
private ArrayList<?> genericArrayList;
9-
private HashSet<Integer> integerHashSet;
10-
11-
public ComplexClass(ArrayList<?> genericArrayList,
12-
HashSet<Integer> integerHashSet) {
13-
super();
14-
this.genericArrayList = genericArrayList;
15-
this.integerHashSet = integerHashSet;
16-
}
17-
18-
@Override
19-
public int hashCode() {
20-
final int prime = 31;
21-
int result = 1;
22-
result = prime
23-
* result
24-
+ ((genericArrayList == null) ? 0 : genericArrayList.hashCode());
25-
result = prime * result
26-
+ ((integerHashSet == null) ? 0 : integerHashSet.hashCode());
27-
return result;
28-
}
29-
30-
@Override
31-
public boolean equals(Object obj) {
32-
if (this == obj)
33-
return true;
34-
if (obj == null)
35-
return false;
36-
if (!(obj instanceof ComplexClass))
37-
return false;
38-
ComplexClass other = (ComplexClass) obj;
39-
if (genericArrayList == null) {
40-
if (other.genericArrayList != null)
41-
return false;
42-
} else if (!genericArrayList.equals(other.genericArrayList))
43-
return false;
44-
if (integerHashSet == null) {
45-
if (other.integerHashSet != null)
46-
return false;
47-
} else if (!integerHashSet.equals(other.integerHashSet))
48-
return false;
49-
return true;
50-
}
51-
52-
protected ArrayList<?> getGenericArrayList() {
53-
return genericArrayList;
54-
}
55-
56-
protected void setGenericArrayList(ArrayList<?> genericArrayList) {
57-
this.genericArrayList = genericArrayList;
58-
}
59-
60-
protected HashSet<Integer> getIntegerHashSet() {
61-
return integerHashSet;
62-
}
63-
64-
protected void setIntegerHashSet(HashSet<Integer> integerHashSet) {
65-
this.integerHashSet = integerHashSet;
66-
}
8+
private ArrayList<?> genericArrayList;
9+
private HashSet<Integer> integerHashSet;
10+
11+
public ComplexClass(ArrayList<?> genericArrayList, HashSet<Integer> integerHashSet) {
12+
super();
13+
this.genericArrayList = genericArrayList;
14+
this.integerHashSet = integerHashSet;
15+
}
16+
17+
@Override
18+
public int hashCode() {
19+
final int prime = 31;
20+
int result = 1;
21+
result = prime * result + ((genericArrayList == null) ? 0 : genericArrayList.hashCode());
22+
result = prime * result + ((integerHashSet == null) ? 0 : integerHashSet.hashCode());
23+
return result;
24+
}
25+
26+
@Override
27+
public boolean equals(Object obj) {
28+
if (this == obj)
29+
return true;
30+
if (obj == null)
31+
return false;
32+
if (!(obj instanceof ComplexClass))
33+
return false;
34+
ComplexClass other = (ComplexClass) obj;
35+
if (genericArrayList == null) {
36+
if (other.genericArrayList != null)
37+
return false;
38+
} else if (!genericArrayList.equals(other.genericArrayList))
39+
return false;
40+
if (integerHashSet == null) {
41+
if (other.integerHashSet != null)
42+
return false;
43+
} else if (!integerHashSet.equals(other.integerHashSet))
44+
return false;
45+
return true;
46+
}
47+
48+
protected ArrayList<?> getGenericArrayList() {
49+
return genericArrayList;
50+
}
51+
52+
protected void setGenericArrayList(ArrayList<?> genericArrayList) {
53+
this.genericArrayList = genericArrayList;
54+
}
55+
56+
protected HashSet<Integer> getIntegerHashSet() {
57+
return integerHashSet;
58+
}
59+
60+
protected void setIntegerHashSet(HashSet<Integer> integerHashSet) {
61+
this.integerHashSet = integerHashSet;
62+
}
6763
}

eclipse/src/main/java/org/baeldung/equalshashcode/entities/PrimitiveClass.java

Lines changed: 49 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -2,53 +2,53 @@
22

33
public class PrimitiveClass {
44

5-
private boolean primitiveBoolean;
6-
private int primitiveInt;
7-
8-
public PrimitiveClass(boolean primitiveBoolean, int primitiveInt) {
9-
super();
10-
this.primitiveBoolean = primitiveBoolean;
11-
this.primitiveInt = primitiveInt;
12-
}
13-
14-
protected boolean isPrimitiveBoolean() {
15-
return primitiveBoolean;
16-
}
17-
18-
@Override
19-
public int hashCode() {
20-
final int prime = 31;
21-
int result = 1;
22-
result = prime * result + (primitiveBoolean ? 1231 : 1237);
23-
result = prime * result + primitiveInt;
24-
return result;
25-
}
26-
27-
@Override
28-
public boolean equals(Object obj) {
29-
if (this == obj)
30-
return true;
31-
if (obj == null)
32-
return false;
33-
if (getClass() != obj.getClass())
34-
return false;
35-
PrimitiveClass other = (PrimitiveClass) obj;
36-
if (primitiveBoolean != other.primitiveBoolean)
37-
return false;
38-
if (primitiveInt != other.primitiveInt)
39-
return false;
40-
return true;
41-
}
42-
43-
protected void setPrimitiveBoolean(boolean primitiveBoolean) {
44-
this.primitiveBoolean = primitiveBoolean;
45-
}
46-
47-
protected int getPrimitiveInt() {
48-
return primitiveInt;
49-
}
50-
51-
protected void setPrimitiveInt(int primitiveInt) {
52-
this.primitiveInt = primitiveInt;
53-
}
5+
private boolean primitiveBoolean;
6+
private int primitiveInt;
7+
8+
public PrimitiveClass(boolean primitiveBoolean, int primitiveInt) {
9+
super();
10+
this.primitiveBoolean = primitiveBoolean;
11+
this.primitiveInt = primitiveInt;
12+
}
13+
14+
protected boolean isPrimitiveBoolean() {
15+
return primitiveBoolean;
16+
}
17+
18+
@Override
19+
public int hashCode() {
20+
final int prime = 31;
21+
int result = 1;
22+
result = prime * result + (primitiveBoolean ? 1231 : 1237);
23+
result = prime * result + primitiveInt;
24+
return result;
25+
}
26+
27+
@Override
28+
public boolean equals(Object obj) {
29+
if (this == obj)
30+
return true;
31+
if (obj == null)
32+
return false;
33+
if (getClass() != obj.getClass())
34+
return false;
35+
PrimitiveClass other = (PrimitiveClass) obj;
36+
if (primitiveBoolean != other.primitiveBoolean)
37+
return false;
38+
if (primitiveInt != other.primitiveInt)
39+
return false;
40+
return true;
41+
}
42+
43+
protected void setPrimitiveBoolean(boolean primitiveBoolean) {
44+
this.primitiveBoolean = primitiveBoolean;
45+
}
46+
47+
protected int getPrimitiveInt() {
48+
return primitiveInt;
49+
}
50+
51+
protected void setPrimitiveInt(int primitiveInt) {
52+
this.primitiveInt = primitiveInt;
53+
}
5454
}
Lines changed: 55 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1,62 +1,60 @@
11
package org.baeldung.equalshashcode.entities;
22

33
public class Rectangle extends Shape {
4-
private double width;
5-
private double length;
6-
7-
public Rectangle(double width, double length) {
8-
this.width = width;
9-
this.length = length;
10-
}
11-
12-
@Override
13-
public double area() {
14-
// A = w * l
15-
return width * length;
16-
}
17-
18-
@Override
19-
public double perimeter() {
20-
// P = 2(w + l)
21-
return 2 * (width + length);
22-
}
23-
24-
@Override
25-
public int hashCode() {
26-
final int prime = 31;
27-
int result = 1;
28-
long temp;
29-
temp = Double.doubleToLongBits(length);
30-
result = prime * result + (int) (temp ^ (temp >>> 32));
31-
temp = Double.doubleToLongBits(width);
32-
result = prime * result + (int) (temp ^ (temp >>> 32));
33-
return result;
34-
}
35-
36-
@Override
37-
public boolean equals(Object obj) {
38-
if (this == obj)
39-
return true;
40-
if (obj == null)
41-
return false;
42-
if (getClass() != obj.getClass())
43-
return false;
44-
Rectangle other = (Rectangle) obj;
45-
if (Double.doubleToLongBits(length) != Double
46-
.doubleToLongBits(other.length))
47-
return false;
48-
if (Double.doubleToLongBits(width) != Double
49-
.doubleToLongBits(other.width))
50-
return false;
51-
return true;
52-
}
53-
54-
protected double getWidth() {
55-
return width;
56-
}
57-
58-
protected double getLength() {
59-
return length;
60-
}
4+
private double width;
5+
private double length;
6+
7+
public Rectangle(double width, double length) {
8+
this.width = width;
9+
this.length = length;
10+
}
11+
12+
@Override
13+
public double area() {
14+
// A = w * l
15+
return width * length;
16+
}
17+
18+
@Override
19+
public double perimeter() {
20+
// P = 2(w + l)
21+
return 2 * (width + length);
22+
}
23+
24+
@Override
25+
public int hashCode() {
26+
final int prime = 31;
27+
int result = 1;
28+
long temp;
29+
temp = Double.doubleToLongBits(length);
30+
result = prime * result + (int) (temp ^ (temp >>> 32));
31+
temp = Double.doubleToLongBits(width);
32+
result = prime * result + (int) (temp ^ (temp >>> 32));
33+
return result;
34+
}
35+
36+
@Override
37+
public boolean equals(Object obj) {
38+
if (this == obj)
39+
return true;
40+
if (obj == null)
41+
return false;
42+
if (getClass() != obj.getClass())
43+
return false;
44+
Rectangle other = (Rectangle) obj;
45+
if (Double.doubleToLongBits(length) != Double.doubleToLongBits(other.length))
46+
return false;
47+
if (Double.doubleToLongBits(width) != Double.doubleToLongBits(other.width))
48+
return false;
49+
return true;
50+
}
51+
52+
protected double getWidth() {
53+
return width;
54+
}
55+
56+
protected double getLength() {
57+
return length;
58+
}
6159

6260
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package org.baeldung.equalshashcode.entities;
22

33
public abstract class Shape {
4-
public abstract double area();
4+
public abstract double area();
55

6-
public abstract double perimeter();
6+
public abstract double perimeter();
77
}

0 commit comments

Comments
 (0)