Package io.blt.util
Class Obj
java.lang.Object
io.blt.util.Obj
Static utility methods for operating on
Object.-
Method Summary
Modifier and TypeMethodDescriptionstatic <T,E extends Throwable>
TorElseGet(T value, ThrowingSupplier<T, E> supplier) Returnsvalueif non-null, else invokes and returns the result ofsupplier.static <T,E extends Throwable>
Tpoke(T instance, ThrowingConsumer<T, E> consumer) Passes theinstanceto theconsumer, then returns theinstance.static <T,E extends Throwable>
Ttap(Supplier<T> supplier, ThrowingConsumer<T, E> consumer) Calls thesupplierto retrieve an instance which is mutated by theconsumerthen returned.
-
Method Details
-
poke
Passes theinstanceto theconsumer, then returns theinstance. e.g.var user = Obj.poke(new User(), u -> { u.setName("Greg"); u.setAge(15); });Optionally, the
consumermay throw which will bubble up.- Type Parameters:
T- type ofinstanceE- type ofconsumerthrowable- Parameters:
instance- instance to consume and returnconsumer- operation to perform oninstance- Returns:
instanceafter accepting side effects viaconsumer.- Throws:
E extends Throwable
-
tap
public static <T,E extends Throwable> T tap(Supplier<T> supplier, ThrowingConsumer<T, E> consumer) throws ECalls thesupplierto retrieve an instance which is mutated by theconsumerthen returned. e.g.var user = Obj.tap(User::new, u -> { u.setName("Greg"); u.setAge(15); });Optionally, the
consumermay throw which will bubble up.- Type Parameters:
T- type of instanceE- type ofconsumerthrowable- Parameters:
supplier- supplies an instance to consume and returnconsumer- operation to perform on supplied instance- Returns:
- Supplied instance after applying side effects via
consumer. - Throws:
E extends Throwable
-
orElseGet
public static <T,E extends Throwable> T orElseGet(T value, ThrowingSupplier<T, E> supplier) throws EReturnsvalueif non-null, else invokes and returns the result ofsupplier.Optionally, the
e.g.suppliermay throw which will bubble up.private URL homepageOrDefault(URL homepage) throws MalformedURLException { return orElseGet(homepage, () -> new URL("https://google.com")); }- Type Parameters:
T- type of the returned valueE- type ofsupplierthrowable- Parameters:
value- returned if non-nullsupplier- called and returned ifvalueis null- Returns:
valueif non-null, the result ofsupplier- Throws:
E-Throwablethat may be thrown if thesupplieris invoked
-