public class GenericUtils
extends java.lang.Object
| Constructor and Description |
|---|
GenericUtils() |
| Modifier and Type | Method and Description |
|---|---|
static <T> T |
cast(@Nullable java.lang.Object obj) |
static <I1,I2> @Nullable java.util.function.BiConsumer<I1,I2> |
castBiConsumer(@Nullable java.util.function.BiConsumer<?,?> consumer) |
static <I1,I2,O> @Nullable java.util.function.BiFunction<I1,I2,O> |
castBiFunction(@Nullable java.util.function.BiFunction<?,?,?> function) |
static <I> @Nullable java.util.function.Consumer<I> |
castConsumer(@Nullable java.util.function.Consumer<?> consumer) |
static <I,O> @Nullable java.util.function.Function<I,O> |
castFunction(@Nullable java.util.function.Function<?,?> function) |
static <T> T |
castGenericType(@Nullable java.lang.Object obj,
java.lang.Class<T> valType)
This attempts to cast a value stored as an object to a generic type.
|
static <O> @Nullable java.util.function.Supplier<O> |
castSupplier(@Nullable java.util.function.Supplier<?> supplier) |
static boolean |
isAnyType(java.lang.Class<?> clazz,
java.lang.Class<?>... classTypes)
Checks if the input class is assignable from any of the input class types
|
static boolean |
isInstanceAnyType(java.lang.Object obj,
java.lang.Class<?>... types)
Checks if the input value extends any of the input class types
|
static boolean |
isListAnyType(java.util.List<?> list,
java.lang.Class<?>... classTypes)
The list type can't be checked if it's empty, so it has to return false if that is the case.
|
static boolean |
isPrimitive(java.lang.Class<?> clazz)
Checks if the class is a primitive type.
|
static boolean |
isPrimitiveInstance(java.lang.Object obj)
Checks if the object is a primitive type.
|
static boolean |
matches(@Nullable java.lang.Object value,
@Nullable java.lang.Object other)
Runs non-strict equality rules.
|
static java.lang.Number |
numberAdd(java.lang.Number n1,
java.lang.Number n2) |
static java.lang.Number |
numberDiv(java.lang.Number n1,
java.lang.Number n2) |
static boolean |
numberMatches(java.lang.Number number,
java.lang.Object other) |
static java.lang.Number |
numberMul(java.lang.Number n1,
java.lang.Number n2) |
static java.lang.Number |
numberSub(java.lang.Number n1,
java.lang.Number n2) |
static java.lang.Object |
parseGenericFromTag(CompoundTagAPI<?> tag)
Assumes the value is stored as a string
|
static java.lang.Object |
parseGenericType(java.lang.String unparsed,
java.lang.Class<?> valType)
This only handles primitive types for the most part, so it may be better to just do whatever you want manually
|
static <N extends java.lang.Number> |
parseNumber(java.lang.String unparsed,
java.lang.Class<?> valType)
Luckily the parse methods for each number type all follow the same format, with a minor exception for parseInt.
|
static <N extends java.lang.Number> |
parseNumber(java.lang.String unparsed,
N defaultValue) |
static <V> V |
parsePrimitive(java.lang.String unparsed,
java.lang.Class<V> valType) |
static void |
writeGenericToTag(CompoundTagAPI<?> tag,
java.lang.Object obj) |
@Nullable
public static <T> T cast(@Nullable
@Nullable java.lang.Object obj)
@Nullable
public static <I1,I2> @Nullable java.util.function.BiConsumer<I1,I2> castBiConsumer(@Nullable
@Nullable java.util.function.BiConsumer<?,?> consumer)
@Nullable
public static <I1,I2,O> @Nullable java.util.function.BiFunction<I1,I2,O> castBiFunction(@Nullable
@Nullable java.util.function.BiFunction<?,?,?> function)
@Nullable
public static <I> @Nullable java.util.function.Consumer<I> castConsumer(@Nullable
@Nullable java.util.function.Consumer<?> consumer)
@Nullable
public static <I,O> @Nullable java.util.function.Function<I,O> castFunction(@Nullable
@Nullable java.util.function.Function<?,?> function)
public static <T> T castGenericType(@Nullable
@Nullable java.lang.Object obj,
java.lang.Class<T> valType)
@Nullable
public static <O> @Nullable java.util.function.Supplier<O> castSupplier(@Nullable
@Nullable java.util.function.Supplier<?> supplier)
public static boolean isAnyType(java.lang.Class<?> clazz,
java.lang.Class<?>... classTypes)
public static boolean isInstanceAnyType(java.lang.Object obj,
java.lang.Class<?>... types)
public static boolean isListAnyType(java.util.List<?> list,
java.lang.Class<?>... classTypes)
public static boolean isPrimitive(java.lang.Class<?> clazz)
public static boolean isPrimitiveInstance(java.lang.Object obj)
public static boolean matches(@Nullable
@Nullable java.lang.Object value,
@Nullable
@Nullable java.lang.Object other)
public static java.lang.Number numberAdd(java.lang.Number n1,
java.lang.Number n2)
public static java.lang.Number numberDiv(java.lang.Number n1,
java.lang.Number n2)
public static boolean numberMatches(java.lang.Number number,
java.lang.Object other)
public static java.lang.Number numberMul(java.lang.Number n1,
java.lang.Number n2)
public static java.lang.Number numberSub(java.lang.Number n1,
java.lang.Number n2)
public static java.lang.Object parseGenericFromTag(CompoundTagAPI<?> tag)
public static java.lang.Object parseGenericType(java.lang.String unparsed,
java.lang.Class<?> valType)
public static <N extends java.lang.Number> N parseNumber(java.lang.String unparsed,
java.lang.Class<?> valType)
public static <N extends java.lang.Number> N parseNumber(java.lang.String unparsed,
N defaultValue)
public static <V> V parsePrimitive(java.lang.String unparsed,
java.lang.Class<V> valType)
public static void writeGenericToTag(CompoundTagAPI<?> tag, java.lang.Object obj)