80 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| package net.minecraft;
 | |
| 
 | |
| import java.util.Collection;
 | |
| import java.util.Iterator;
 | |
| import java.util.Objects;
 | |
| import java.util.function.Function;
 | |
| import java.util.function.Supplier;
 | |
| import org.jetbrains.annotations.Nullable;
 | |
| 
 | |
| public class Optionull {
 | |
| 	@Deprecated
 | |
| 	public static <T> T orElse(@Nullable T value, T defaultValue) {
 | |
| 		return (T)Objects.requireNonNullElse(value, defaultValue);
 | |
| 	}
 | |
| 
 | |
| 	@Nullable
 | |
| 	public static <T, R> R map(@Nullable T value, Function<T, R> mapper) {
 | |
| 		return (R)(value == null ? null : mapper.apply(value));
 | |
| 	}
 | |
| 
 | |
| 	public static <T, R> R mapOrDefault(@Nullable T value, Function<T, R> mapper, R defaultValue) {
 | |
| 		return (R)(value == null ? defaultValue : mapper.apply(value));
 | |
| 	}
 | |
| 
 | |
| 	public static <T, R> R mapOrElse(@Nullable T value, Function<T, R> mapper, Supplier<R> supplier) {
 | |
| 		return (R)(value == null ? supplier.get() : mapper.apply(value));
 | |
| 	}
 | |
| 
 | |
| 	@Nullable
 | |
| 	public static <T> T first(Collection<T> collection) {
 | |
| 		Iterator<T> iterator = collection.iterator();
 | |
| 		return (T)(iterator.hasNext() ? iterator.next() : null);
 | |
| 	}
 | |
| 
 | |
| 	public static <T> T firstOrDefault(Collection<T> collection, T defaultValue) {
 | |
| 		Iterator<T> iterator = collection.iterator();
 | |
| 		return (T)(iterator.hasNext() ? iterator.next() : defaultValue);
 | |
| 	}
 | |
| 
 | |
| 	public static <T> T firstOrElse(Collection<T> collection, Supplier<T> supplier) {
 | |
| 		Iterator<T> iterator = collection.iterator();
 | |
| 		return (T)(iterator.hasNext() ? iterator.next() : supplier.get());
 | |
| 	}
 | |
| 
 | |
| 	public static <T> boolean isNullOrEmpty(@Nullable T[] array) {
 | |
| 		return array == null || array.length == 0;
 | |
| 	}
 | |
| 
 | |
| 	public static boolean isNullOrEmpty(@Nullable boolean[] array) {
 | |
| 		return array == null || array.length == 0;
 | |
| 	}
 | |
| 
 | |
| 	public static boolean isNullOrEmpty(@Nullable byte[] array) {
 | |
| 		return array == null || array.length == 0;
 | |
| 	}
 | |
| 
 | |
| 	public static boolean isNullOrEmpty(@Nullable char[] array) {
 | |
| 		return array == null || array.length == 0;
 | |
| 	}
 | |
| 
 | |
| 	public static boolean isNullOrEmpty(@Nullable short[] array) {
 | |
| 		return array == null || array.length == 0;
 | |
| 	}
 | |
| 
 | |
| 	public static boolean isNullOrEmpty(@Nullable int[] array) {
 | |
| 		return array == null || array.length == 0;
 | |
| 	}
 | |
| 
 | |
| 	public static boolean isNullOrEmpty(@Nullable long[] array) {
 | |
| 		return array == null || array.length == 0;
 | |
| 	}
 | |
| 
 | |
| 	public static boolean isNullOrEmpty(@Nullable float[] array) {
 | |
| 		return array == null || array.length == 0;
 | |
| 	}
 | |
| 
 | |
| 	public static boolean isNullOrEmpty(@Nullable double[] array) {
 | |
| 		return array == null || array.length == 0;
 | |
| 	}
 | |
| }
 |