Den Dribbles

Java Lambda Functions

February 05, 2019

The basic gist is to generate a interface with the lambda signature, then explicitly create a function preface by the interface type.

This will allow you to call the lambda function as a instance method.


// src/main/java/
interface Anon {
    String helloWorld();

interface AnonInt {
    int sum(int a, int b);

class Lambda {
    String hello() {
        Anon anon = () -> "Hello, World!";
        return anon.helloWorld();

    int sumOnePlusTwo() {
        AnonInt anon = (int a, int b) -> a + b;
        return anon.sum(1, 2);

As for the test file:

// src/tests/java/
import org.junit.Ignore;
import org.junit.Test;

import static org.junit.Assert.assertEquals;

public class LambdaTest {
    public void testLambda() {
        assertEquals("Hello, World!", new Lambda().hello());

    public void testLambdaSum() {
        assertEquals(3, new Lambda().sumOnePlusTwo());

A personal blog on all things of interest. Written by Dennis O'Keeffe, Follow me on Twitter