Skip to content

Java experimental implementation of Reselect (Redux)

Notifications You must be signed in to change notification settings

pcdv/java-reselect

Repository files navigation

Java-Reselect

Experimental reimplementation of Reselect in Java.

Function<State, Integer> orangeSelector = (State s) -> s.oranges;
Function<State, Integer> applesSelector = (State s) -> s.apples;

Function<State, String> selector = Reselect.createCachedSelector(
  orangeSelector,
  applesSelector,
  (oranges, apples) -> oranges + " oranges " + apples + " apples (#" + counter.incrementAndGet() + ")");

There are createCachedSelector overloads taking 1 or 2 selectors.

For an arbitrary number of selectors, the order of arguments is inverted compared to Reselect so we can benefit from varargs. The only issue is that parameters need a cast, e.g.

    Function<State, String> selector = Reselect.createCachedSelector(
      (Object[] arr) -> {
        Integer oranges = (Integer) arr[0];
        Integer apples = (Integer) arr[1];
        Integer bananaSelector = (Integer) arr[2];
        return ...
      },
      orangeSelector,
      applesSelector,
      bananaSelector);
);

About

Java experimental implementation of Reselect (Redux)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages