diff --git a/akka-actor/src/main/java/akka/japi/pf/ReceiveBuilder.java b/akka-actor/src/main/java/akka/japi/pf/ReceiveBuilder.java
index 2c9d55364d..1fa7959c9b 100644
--- a/akka-actor/src/main/java/akka/japi/pf/ReceiveBuilder.java
+++ b/akka-actor/src/main/java/akka/japi/pf/ReceiveBuilder.java
@@ -4,10 +4,9 @@
package akka.japi.pf;
+import akka.actor.AbstractActor.Receive;
import scala.PartialFunction;
import scala.runtime.BoxedUnit;
-import akka.actor.AbstractActor;
-import akka.actor.AbstractActor.Receive;
/**
* Used for building a partial function for {@link akka.actor.AbstractActor#createReceive()
@@ -169,7 +168,7 @@ public class ReceiveBuilder {
* List.class and (List<String> list) -> {}.
*
* @param type a type to match the argument against
- * @param externalPredicate a external predicate that will be evaluated if the type matches
+ * @param externalPredicate an external predicate that will be evaluated if the type matches
* @param apply an action to apply to the argument if the type matches and the predicate returns
* true
* @return a builder with the case statement added
@@ -240,6 +239,27 @@ public class ReceiveBuilder {
return this;
}
+ /**
+ * Add a new case statement to this builder.
+ *
+ * @param object the object to compare equals with
+ * @param externalPredicate an external predicate that will be evaluated if the object compares
+ * equal
+ * @param apply an action to apply to the argument if the object compares equal
+ * @return a builder with the case statement added
+ */
+ @SuppressWarnings("unchecked")
+ public
ReceiveBuilder matchEquals( + final P object, + final java.util.function.BooleanSupplier externalPredicate, + final FI.UnitApply
apply) { + final FI.Predicate predicate = o -> object.equals(o) && externalPredicate.getAsBoolean(); + addStatement(new UnitCaseStatement<>(predicate, (FI.UnitApply