Add single/triple/quadruple instantiation methods to Tuple

This commit is contained in:
Johannes Frohnmeyer 2022-04-28 20:55:09 +02:00
parent da6eaff6e7
commit 9d440ccc7e
Signed by: Johannes
GPG Key ID: E76429612C2929F4

View File

@ -8,11 +8,26 @@ import java.util.*;
import java.util.function.Function;
public record Tuple<T1, T2>(@Nullable T1 left, @Nullable T2 right) {
@Contract(pure = true) @NotNull
public static <T1> Single<T1> of(@Nullable T1 val) {
return new Single<>(val);
}
@Contract(pure = true) @NotNull
public static <T1, T2> Tuple<T1, T2> of(@Nullable T1 left, @Nullable T2 right) {
return new Tuple<>(left, right);
}
@Contract(pure = true) @NotNull
public static <T1, T2, T3> Triple<T1, T2, T3> of(@Nullable T1 val1, @Nullable T2 val2, @Nullable T3 val3) {
return new Triple<>(val1, val2, val3);
}
@Contract(pure = true) @NotNull
public static <T1, T2, T3, T4> Quadruple<T1, T2, T3, T4> of(@Nullable T1 val1, @Nullable T2 val2, @Nullable T3 val3, @Nullable T4 val4) {
return new Quadruple<>(val1, val2, val3, val4);
}
@Contract(pure = true) @NotNull
public static <T1, T2> Tuple<T1, T2> from(@NotNull Map.Entry<T1, T2> entry) {
Objects.requireNonNull(entry);