UnmodifiableMultimap.forEach uses the Multimap.forEach default implementation which involves listing entries, and creating a new lambda instead of simply passing the BiConsumer through to the protected instance. This is safe to pass directly though because forEach(BiConsumer) is a read-only operation.