class A { void foo() { new IterHelper<>().loopMap((k, val) -> { //do something }); } } final class IterHelper { public void loopMap(final MapIterCallback callback) { //do something } public static interface MapIterCallback { abstract void eval(K k, V v); } }