Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8182978

Add default empty consumer

XMLWordPrintable

      A DESCRIPTION OF THE REQUEST :
      Please add an empty default consumer in java.util.function.Consumer which can be accessed by Consumer.EMPTY for example

      public static final Consumer EMPTY = element -> {};

      JUSTIFICATION :
      in many projects I use overloaded factory methods to create objects which have last parameter with type of Customer<OBJECT_TYPE> customizer, for example:

      User createUser(String login, String password, Consumer<User> customizer) {
          User user = new User();
          user.setLogin(login);
          user.setPassword(password);
          if (customizer != null) {
              customizer.accept(user);
          }
      }

      for cases when I don't need to customize the created object I create overloaded method like this:

      User createUser(String login, String password) {
          return createUser(login, password, null);
      }

      In first createUser method I should check customizer reference before use it. Of course in second method I can set empty consumer like this:

      User createUser(String login, String password) {
          return createUser(login, password, user -> {});
      }

      and don't check customizer reference, but I don't want always create empty consumers in overloaded methods, I want to use something like this:

      User createUser(String login, String password) {
          return createUser(login, password, Consumer.EMPTY);
      }

      :)


            smarks Stuart Marks
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: