diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/tuple/ImmutableTriple.java b/hutool-core/src/main/java/org/dromara/hutool/core/tuple/ImmutableTriple.java index bf8e9171e..8f3019c59 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/tuple/ImmutableTriple.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/tuple/ImmutableTriple.java @@ -1,8 +1,5 @@ package org.dromara.hutool.core.tuple; -import java.io.Serializable; -import java.util.Objects; - /** * 不可变三元组对象 * @@ -12,7 +9,7 @@ import java.util.Objects; * @author kirno7 * @since 6.0.0 */ -public class ImmutableTriple implements Serializable { +public class ImmutableTriple extends Triple { private static final long serialVersionUID = 1L; protected final L left; @@ -53,6 +50,7 @@ public class ImmutableTriple implements Serializable { * * @return 左值 */ + @Override public L getLeft() { return this.left; } @@ -62,6 +60,7 @@ public class ImmutableTriple implements Serializable { * * @return 中值 */ + @Override public M getMiddle() { return this.middle; } @@ -71,31 +70,8 @@ public class ImmutableTriple implements Serializable { * * @return 右值 */ + @Override public R getRight() { return this.right; } - - @Override - public String toString() { - return "ImmutableTriple {" + "left=" + left + ", middle=" + middle + ", right=" + right + '}'; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o instanceof ImmutableTriple) { - ImmutableTriple triple = (ImmutableTriple) o; - return Objects.equals(left, triple.getLeft()) && - Objects.equals(middle, triple.getMiddle()) && - Objects.equals(right, triple.getRight()); - } - return false; - } - - @Override - public int hashCode() { - return Objects.hashCode(left) ^ Objects.hashCode(middle) ^ Objects.hashCode(right); - } } diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/tuple/MutableTriple.java b/hutool-core/src/main/java/org/dromara/hutool/core/tuple/MutableTriple.java index 775675ae9..ad3c205b6 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/tuple/MutableTriple.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/tuple/MutableTriple.java @@ -1,8 +1,5 @@ package org.dromara.hutool.core.tuple; -import java.io.Serializable; -import java.util.Objects; - /** * 可变三元组对象 * @@ -12,7 +9,7 @@ import java.util.Objects; * @author kirno7 * @since 6.0.0 */ -public class MutableTriple implements Serializable { +public class MutableTriple extends Triple { private static final long serialVersionUID = 1L; protected L left; @@ -53,6 +50,7 @@ public class MutableTriple implements Serializable { * * @return 左值 */ + @Override public L getLeft() { return this.left; } @@ -62,6 +60,7 @@ public class MutableTriple implements Serializable { * * @return 中值 */ + @Override public M getMiddle() { return this.middle; } @@ -71,6 +70,7 @@ public class MutableTriple implements Serializable { * * @return 右值 */ + @Override public R getRight() { return this.right; } @@ -101,28 +101,4 @@ public class MutableTriple implements Serializable { public void setRight(R right) { this.right = right; } - - @Override - public String toString() { - return "MutableTriple {" + "left=" + left + ", middle=" + middle + ", right=" + right + '}'; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o instanceof MutableTriple) { - MutableTriple triple = (MutableTriple) o; - return Objects.equals(left, triple.getLeft()) && - Objects.equals(middle, triple.getMiddle()) && - Objects.equals(right, triple.getRight()); - } - return false; - } - - @Override - public int hashCode() { - return Objects.hashCode(left) ^ Objects.hashCode(middle) ^ Objects.hashCode(right); - } } diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/tuple/Triple.java b/hutool-core/src/main/java/org/dromara/hutool/core/tuple/Triple.java new file mode 100644 index 000000000..2b2a9b006 --- /dev/null +++ b/hutool-core/src/main/java/org/dromara/hutool/core/tuple/Triple.java @@ -0,0 +1,63 @@ +package org.dromara.hutool.core.tuple; + +import java.io.Serializable; +import java.util.Objects; + +/** + * 三元组抽象类 + * + * @param 左值类型 + * @param 中值类型 + * @param 右值类型 + * @author kirno7 + * @since 6.0.0 + */ +public abstract class Triple implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 获取左值 + * + * @return 左值 + */ + public abstract L getLeft(); + + /** + * 获取中值 + * + * @return 中值 + */ + public abstract M getMiddle(); + + /** + * 获取右值 + * + * @return 右值 + */ + public abstract R getRight(); + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o instanceof ImmutableTriple) { + ImmutableTriple triple = (ImmutableTriple) o; + return Objects.equals(getLeft(), triple.getLeft()) && + Objects.equals(getMiddle(), triple.getMiddle()) && + Objects.equals(getRight(), triple.getRight()); + } + return false; + } + + @Override + public int hashCode() { + return Objects.hashCode(getLeft()) ^ Objects.hashCode(getMiddle()) ^ Objects.hashCode(getRight()); + } + + @Override + public String toString() { + return "Triple {" + "left=" + getLeft() + ", middle=" + getMiddle() + ", right=" + getRight() + '}'; + } +} +