java.lang.Object
org.bytemechanics.config.manager.internal.commons.functional.LambdaUnchecker

public final class LambdaUnchecker
extends java.lang.Object
Utility class to hide checked exceptions. Thanks to:
  • https://stackoverflow.com/questions/27644361/how-can-i-throw-checked-exceptions-from-inside-java-8-streams#27668305
  • http://www.philandstuff.com/2012/04/28/sneakily-throwing-checked-exceptions.html http://www.mail-archive.com/javaposse@googlegroups.com/msg05984.html
  • https://softwareengineering.stackexchange.com/questions/225931/workaround-for-java-checked-exceptions?newreg=ddf0dd15e8174af8ba52e091cf85688e
  • https://stackoverflow.com/questions/27644361/how-can-i-throw-checked-exceptions-from-inside-java-8-streams
Since:
1.1.0
Author:
not sure
  • Nested Class Summary

    Nested Classes 
    Modifier and Type Class Description
    static interface  LambdaUnchecker.BiConsumerWithExceptions<T,​U,​E extends java.lang.Exception>
    Functional interface for biconsumers with checked exceptions
    static interface  LambdaUnchecker.ConsumerWithExceptions<T,​E extends java.lang.Exception>
    Functional interface for consumers with checked exceptions
    static interface  LambdaUnchecker.FunctionWithExceptions<T,​R,​E extends java.lang.Exception>
    Functional interface for functions with checked exceptions
    static interface  LambdaUnchecker.RunnableWithExceptions<E extends java.lang.Exception>
    Functional interface for runnables with checked exceptions
    static interface  LambdaUnchecker.SupplierWithExceptions<T,​E extends java.lang.Exception>
    Functional interface for suppliers with checked exceptions
  • Constructor Summary

    Constructors 
    Constructor Description
    LambdaUnchecker()  
  • Method Summary

    Modifier and Type Method Description
    static <T,​ U,​ E extends java.lang.Exception>
    void
    silencedAccept​(LambdaUnchecker.BiConsumerWithExceptions<T,​U,​E> _biConsumer, T _firstInput, U _secondInput)
    Accept consumer input but silencing the exception Example: silencedAccept((name,value) -> System.out.println(Class.forName(name)+value));
    static <T,​ E extends java.lang.Exception>
    void
    silencedAccept​(LambdaUnchecker.ConsumerWithExceptions<T,​E> _consumer, T _input)
    Accept consumer input but silencing the exception Example: uncheckedAccept(name -> System.out.println(Class.forName(name)),"java.util.List");
    static <T,​ R,​ E extends java.lang.Exception>
    R
    silencedApply​(LambdaUnchecker.FunctionWithExceptions<T,​R,​E> _function, T _input)
    Apply function returning the result but returning null when exception and silencing the exception and in this case returning null Example: silencedFunction(name -> Class.forName(name)) or silencedFunction(Class::forName)
    static <T,​ U,​ E extends java.lang.Exception>
    java.util.function.BiConsumer<T,​U>
    silencedBiConsumer​(LambdaUnchecker.BiConsumerWithExceptions<T,​U,​E> _biConsumer)
    Wraps biconsumer lambda returning the same one but returning null when exception and silencing the exception Example: .forEach(silencedBiConsumer((name,value) -> System.out.println(Class.forName(name)+value)));
    static <T,​ E extends java.lang.Exception>
    java.util.function.Consumer<T>
    silencedConsumer​(LambdaUnchecker.ConsumerWithExceptions<T,​E> _consumer)
    Wraps consumer lambda returning the same one but silencing the exception Example: .forEach(silencedConsumer(name -> System.out.println(Class.forName(name)))); or .forEach(silencedConsumer(ClassNameUtil::println));
    static <T,​ R,​ E extends java.lang.Exception>
    java.util.function.Function<T,​R>
    silencedFunction​(LambdaUnchecker.FunctionWithExceptions<T,​R,​E> _function)
    Wraps function lambda returning the same one but returning null when exception and silencing the exception Example: .map(silencedFunction(name -> Class.forName(name))) or .map(silencedFunction(Class::forName))
    static <T,​ E extends java.lang.Exception>
    T
    silencedGet​(LambdaUnchecker.SupplierWithExceptions<T,​E> _supplier)
    Get supplier returning the supplier result or null if exception Example: silencedGet(() -> new StringJoiner(new String(new byte[]{77, 97, 114, 107}, "UTF-8")))
    static void silencedRun​(LambdaUnchecker.RunnableWithExceptions _runnable)
    Run Runnable but silencing any exception Example: silencedGet(() -> new StringJoiner(new String(new byte[]{77, 97, 114, 107}, "UTF-8")))
    static java.lang.Runnable silencedRunnable​(LambdaUnchecker.RunnableWithExceptions _runnable)
    Wraps Runnable lambda returning the same one but returning null when exception and silencing the exception Example: silencedSupplier(() -> new StringJoiner(new String(new byte[]{77, 97, 114, 107}, "UTF-8"))),
    static <T,​ E extends java.lang.Exception>
    java.util.function.Supplier<T>
    silencedSupplier​(LambdaUnchecker.SupplierWithExceptions<T,​E> _supplier)
    Wraps supplier lambda returning the same one but returning null when exception and silencing the exception Example: silencedSupplier(() -> new StringJoiner(new String(new byte[]{77, 97, 114, 107}, "UTF-8"))),
    static <T,​ U,​ E extends java.lang.Exception>
    void
    uncheckedAccept​(LambdaUnchecker.BiConsumerWithExceptions<T,​U,​E> _biConsumer, T _firstInput, U _secondInput)
    Accept consumer input but hacking the compiler to avoid compilation check.
    static <T,​ E extends java.lang.Exception>
    void
    uncheckedAccept​(LambdaUnchecker.ConsumerWithExceptions<T,​E> _consumer, T _input)
    Accept consumer input but hacking the compiler to avoid compilation check.
    static <T,​ R,​ E extends java.lang.Exception>
    R
    uncheckedApply​(LambdaUnchecker.FunctionWithExceptions<T,​R,​E> _function, T _input)
    Apply function returning the result but hacking the compiler to avoid compilation check.
    static <T,​ U,​ E extends java.lang.Exception>
    java.util.function.BiConsumer<T,​U>
    uncheckedBiConsumer​(LambdaUnchecker.BiConsumerWithExceptions<T,​U,​E> _biConsumer)
    Wraps biconsumer lambda returning the same one but hacking the compiler to avoid compilation check.
    static <T,​ E extends java.lang.Exception>
    java.util.function.Consumer<T>
    uncheckedConsumer​(LambdaUnchecker.ConsumerWithExceptions<T,​E> _consumer)
    Wraps consumer lambda returning the consumer but hacking the compiler to avoid compilation check.
    static <T,​ R,​ E extends java.lang.Exception>
    java.util.function.Function<T,​R>
    uncheckedFunction​(LambdaUnchecker.FunctionWithExceptions<T,​R,​E> _function)
    Wraps function lambda returning the same one but hacking the compiler to avoid compilation check.
    static <T,​ E extends java.lang.Exception>
    T
    uncheckedGet​(LambdaUnchecker.SupplierWithExceptions<T,​E> _supplier)
    Get supplier returning the supplier result but hacking the compiler to avoid compilation check.
    static void uncheckedRun​(LambdaUnchecker.RunnableWithExceptions _runnable)
    Run Runnable but hacking the compiler to avoid compilation check.
    static java.lang.Runnable uncheckedRunnable​(LambdaUnchecker.RunnableWithExceptions _runnable)
    Wraps Runnable lambda returning the same one but hacking the compiler to avoid compilation check.
    static <T,​ E extends java.lang.Exception>
    java.util.function.Supplier<T>
    uncheckedSupplier​(LambdaUnchecker.SupplierWithExceptions<T,​E> _supplier)
    Wraps supplier lambda returning the same one but hacking the compiler to avoid compilation check.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

  • Method Details

    • uncheckedConsumer

      public static <T,​ E extends java.lang.Exception> java.util.function.Consumer<T> uncheckedConsumer​(LambdaUnchecker.ConsumerWithExceptions<T,​E> _consumer)
      Wraps consumer lambda returning the consumer but hacking the compiler to avoid compilation check. Example: .forEach(uncheckedConsumer(name -> System.out.println(Class.forName(name)))); or .forEach(uncheckedConsumer(ClassNameUtil::println));
      Type Parameters:
      T - consumer input type
      E - checked exception
      Parameters:
      _consumer - consumer to wrap
      Returns:
      wrapped consumer that throws the exceptions produced without compilation check
      See Also:
      LambdaUnchecker.ConsumerWithExceptions
    • silencedConsumer

      public static <T,​ E extends java.lang.Exception> java.util.function.Consumer<T> silencedConsumer​(LambdaUnchecker.ConsumerWithExceptions<T,​E> _consumer)
      Wraps consumer lambda returning the same one but silencing the exception Example: .forEach(silencedConsumer(name -> System.out.println(Class.forName(name)))); or .forEach(silencedConsumer(ClassNameUtil::println));
      Type Parameters:
      T - consumer input type
      E - checked exception
      Parameters:
      _consumer - consumer to wrap
      Returns:
      wrapped consumer that silence the exceptions produced without compilation check
      See Also:
      LambdaUnchecker.ConsumerWithExceptions
    • uncheckedAccept

      public static <T,​ E extends java.lang.Exception> void uncheckedAccept​(LambdaUnchecker.ConsumerWithExceptions<T,​E> _consumer, T _input)
      Accept consumer input but hacking the compiler to avoid compilation check. Example: uncheckedAccept(name -> System.out.println(Class.forName(name)),"java.util.List");
      Type Parameters:
      T - consumer input type
      E - checked exception
      Parameters:
      _consumer - consumer to wrap
      _input - consumer input
      See Also:
      LambdaUnchecker.ConsumerWithExceptions
    • silencedAccept

      public static <T,​ E extends java.lang.Exception> void silencedAccept​(LambdaUnchecker.ConsumerWithExceptions<T,​E> _consumer, T _input)
      Accept consumer input but silencing the exception Example: uncheckedAccept(name -> System.out.println(Class.forName(name)),"java.util.List");
      Type Parameters:
      T - consumer input type
      E - checked exception
      Parameters:
      _consumer - consumer to wrap
      _input - consumer input
      See Also:
      LambdaUnchecker.ConsumerWithExceptions
    • uncheckedBiConsumer

      public static <T,​ U,​ E extends java.lang.Exception> java.util.function.BiConsumer<T,​U> uncheckedBiConsumer​(LambdaUnchecker.BiConsumerWithExceptions<T,​U,​E> _biConsumer)
      Wraps biconsumer lambda returning the same one but hacking the compiler to avoid compilation check. Example: .forEach(uncheckedBiConsumer((name,value) -> System.out.println(Class.forName(name)+value)));
      Type Parameters:
      T - biconsumer first input type
      U - biconsumer second input type
      E - checked exception
      Parameters:
      _biConsumer - biconsumer to wrap
      Returns:
      wrapped biconsumer that throws the exceptions produced without compilation check
      See Also:
      BiConsumer, LambdaUnchecker.BiConsumerWithExceptions
    • silencedBiConsumer

      public static <T,​ U,​ E extends java.lang.Exception> java.util.function.BiConsumer<T,​U> silencedBiConsumer​(LambdaUnchecker.BiConsumerWithExceptions<T,​U,​E> _biConsumer)
      Wraps biconsumer lambda returning the same one but returning null when exception and silencing the exception Example: .forEach(silencedBiConsumer((name,value) -> System.out.println(Class.forName(name)+value)));
      Type Parameters:
      T - biconsumer first input type
      U - biconsumer second input type
      E - checked exception
      Parameters:
      _biConsumer - biconsumer to wrap
      Returns:
      wrapped biconsumer that silence the exceptions produced without compilation check
      See Also:
      BiConsumer, LambdaUnchecker.BiConsumerWithExceptions
    • uncheckedAccept

      public static <T,​ U,​ E extends java.lang.Exception> void uncheckedAccept​(LambdaUnchecker.BiConsumerWithExceptions<T,​U,​E> _biConsumer, T _firstInput, U _secondInput)
      Accept consumer input but hacking the compiler to avoid compilation check. Example: uncheckedAccept((name,value) -> System.out.println(Class.forName(name)+value));
      Type Parameters:
      T - biconsumer first input type
      U - biconsumer second input type
      E - checked exception
      Parameters:
      _biConsumer - biconsumer to wrap
      _firstInput - biconsumer first input
      _secondInput - biconsumer second input
      See Also:
      BiConsumer, LambdaUnchecker.BiConsumerWithExceptions
    • silencedAccept

      public static <T,​ U,​ E extends java.lang.Exception> void silencedAccept​(LambdaUnchecker.BiConsumerWithExceptions<T,​U,​E> _biConsumer, T _firstInput, U _secondInput)
      Accept consumer input but silencing the exception Example: silencedAccept((name,value) -> System.out.println(Class.forName(name)+value));
      Type Parameters:
      T - biconsumer first input type
      U - biconsumer second input type
      E - checked exception
      Parameters:
      _biConsumer - biconsumer to wrap
      _firstInput - biconsumer first input
      _secondInput - biconsumer second input
      See Also:
      BiConsumer, LambdaUnchecker.BiConsumerWithExceptions
    • uncheckedFunction

      public static <T,​ R,​ E extends java.lang.Exception> java.util.function.Function<T,​R> uncheckedFunction​(LambdaUnchecker.FunctionWithExceptions<T,​R,​E> _function)
      Wraps function lambda returning the same one but hacking the compiler to avoid compilation check. Example: .map(uncheckedFunction(name -> Class.forName(name))) or .map(uncheckedFunction(Class::forName))
      Type Parameters:
      T - function input type
      R - function result type
      E - checked exception
      Parameters:
      _function - biconsumer to wrap
      Returns:
      wrapped function that throws the exceptions produced without compilation check
      See Also:
      Function, LambdaUnchecker.FunctionWithExceptions
    • silencedFunction

      public static <T,​ R,​ E extends java.lang.Exception> java.util.function.Function<T,​R> silencedFunction​(LambdaUnchecker.FunctionWithExceptions<T,​R,​E> _function)
      Wraps function lambda returning the same one but returning null when exception and silencing the exception Example: .map(silencedFunction(name -> Class.forName(name))) or .map(silencedFunction(Class::forName))
      Type Parameters:
      T - function input type
      R - function result type
      E - checked exception
      Parameters:
      _function - biconsumer to wrap
      Returns:
      wrapped function that silence the exceptions produced without compilation check
      See Also:
      Function, LambdaUnchecker.FunctionWithExceptions
    • uncheckedApply

      public static <T,​ R,​ E extends java.lang.Exception> R uncheckedApply​(LambdaUnchecker.FunctionWithExceptions<T,​R,​E> _function, T _input)
      Apply function returning the result but hacking the compiler to avoid compilation check. Example: uncheckedFunction(name -> Class.forName(name)) or uncheckedFunction(Class::forName)
      Type Parameters:
      T - function input type
      R - function result type
      E - checked exception
      Parameters:
      _function - biconsumer to wrap
      _input - function input
      Returns:
      function result
      See Also:
      Function, LambdaUnchecker.FunctionWithExceptions
    • silencedApply

      public static <T,​ R,​ E extends java.lang.Exception> R silencedApply​(LambdaUnchecker.FunctionWithExceptions<T,​R,​E> _function, T _input)
      Apply function returning the result but returning null when exception and silencing the exception and in this case returning null Example: silencedFunction(name -> Class.forName(name)) or silencedFunction(Class::forName)
      Type Parameters:
      T - function input type
      R - function result type
      E - checked exception
      Parameters:
      _function - biconsumer to wrap
      _input - function input
      Returns:
      function result or null if exception
      See Also:
      Function, LambdaUnchecker.FunctionWithExceptions
    • uncheckedSupplier

      public static <T,​ E extends java.lang.Exception> java.util.function.Supplier<T> uncheckedSupplier​(LambdaUnchecker.SupplierWithExceptions<T,​E> _supplier)
      Wraps supplier lambda returning the same one but hacking the compiler to avoid compilation check. Example: uncheckedSupplier(() -> new StringJoiner(new String(new byte[]{77, 97, 114, 107}, "UTF-8"))),
      Type Parameters:
      T - supplier result
      E - checked exception
      Parameters:
      _supplier - supplier to wrap
      Returns:
      wrapped function that throws the exceptions produced without compilation check
      See Also:
      Supplier, LambdaUnchecker.SupplierWithExceptions
    • silencedSupplier

      public static <T,​ E extends java.lang.Exception> java.util.function.Supplier<T> silencedSupplier​(LambdaUnchecker.SupplierWithExceptions<T,​E> _supplier)
      Wraps supplier lambda returning the same one but returning null when exception and silencing the exception Example: silencedSupplier(() -> new StringJoiner(new String(new byte[]{77, 97, 114, 107}, "UTF-8"))),
      Type Parameters:
      T - supplier result
      E - checked exception
      Parameters:
      _supplier - supplier to wrap
      Returns:
      wrapped function that silence the exceptions produced without compilation check
      See Also:
      Supplier, LambdaUnchecker.SupplierWithExceptions
    • uncheckedGet

      public static <T,​ E extends java.lang.Exception> T uncheckedGet​(LambdaUnchecker.SupplierWithExceptions<T,​E> _supplier)
      Get supplier returning the supplier result but hacking the compiler to avoid compilation check. Example: uncheckedGet(() -> new StringJoiner(new String(new byte[]{77, 97, 114, 107}, "UTF-8")))
      Type Parameters:
      T - supplier result
      E - checked exception
      Parameters:
      _supplier - supplier to wrap
      Returns:
      supplier result
      See Also:
      Supplier, LambdaUnchecker.SupplierWithExceptions
    • silencedGet

      public static <T,​ E extends java.lang.Exception> T silencedGet​(LambdaUnchecker.SupplierWithExceptions<T,​E> _supplier)
      Get supplier returning the supplier result or null if exception Example: silencedGet(() -> new StringJoiner(new String(new byte[]{77, 97, 114, 107}, "UTF-8")))
      Type Parameters:
      T - supplier result
      E - checked exception
      Parameters:
      _supplier - supplier to wrap
      Returns:
      supplier result or get if exception
      See Also:
      Supplier, LambdaUnchecker.SupplierWithExceptions
    • uncheckedRunnable

      public static java.lang.Runnable uncheckedRunnable​(LambdaUnchecker.RunnableWithExceptions _runnable)
      Wraps Runnable lambda returning the same one but hacking the compiler to avoid compilation check. Example: uncheckedSupplier(() -> new StringJoiner(new String(new byte[]{77, 97, 114, 107}, "UTF-8"))),
      Parameters:
      _runnable - runnable to wrap
      Returns:
      wrapped runnable that throws the exceptions produced without compilation check
      See Also:
      Runnable, LambdaUnchecker.RunnableWithExceptions
    • silencedRunnable

      public static java.lang.Runnable silencedRunnable​(LambdaUnchecker.RunnableWithExceptions _runnable)
      Wraps Runnable lambda returning the same one but returning null when exception and silencing the exception Example: silencedSupplier(() -> new StringJoiner(new String(new byte[]{77, 97, 114, 107}, "UTF-8"))),
      Parameters:
      _runnable - runnable to wrap
      Returns:
      wrapped runnable that silence the exceptions produced without compilation check
      See Also:
      Runnable, LambdaUnchecker.RunnableWithExceptions
    • uncheckedRun

      public static void uncheckedRun​(LambdaUnchecker.RunnableWithExceptions _runnable)
      Run Runnable but hacking the compiler to avoid compilation check. Example: uncheckedGet(() -> new StringJoiner(new String(new byte[]{77, 97, 114, 107}, "UTF-8")))
      Parameters:
      _runnable - runnable to wrap
      See Also:
      Supplier, LambdaUnchecker.SupplierWithExceptions
    • silencedRun

      public static void silencedRun​(LambdaUnchecker.RunnableWithExceptions _runnable)
      Run Runnable but silencing any exception Example: silencedGet(() -> new StringJoiner(new String(new byte[]{77, 97, 114, 107}, "UTF-8")))
      Parameters:
      _runnable - runnable to wrap
      See Also:
      Supplier, LambdaUnchecker.SupplierWithExceptions