@FunctionalInterface
interface Functional { void f(int a); }
class B {
void GenerateData(Functional f) {
f.f(12345);
}
}
class A {
public Functional f;
public void XXX() {
B b = new B();
b.GenerateData(this::ZZZ);
}
public void ZZZ(int n) {
System.
out.
println("n = " + n
); }
}
class Main {
public static void main
(String[] args
) { A a = new A();
a.XXX();
}
}
QEZ1bmN0aW9uYWxJbnRlcmZhY2UKaW50ZXJmYWNlIEZ1bmN0aW9uYWwgeyB2b2lkIGYoaW50IGEpOyB9CgpjbGFzcyBCIHsKICB2b2lkIEdlbmVyYXRlRGF0YShGdW5jdGlvbmFsIGYpIHsKICAgIGYuZigxMjM0NSk7CiAgfQp9CgpjbGFzcyBBIHsKICBwdWJsaWMgRnVuY3Rpb25hbCBmOwogIHB1YmxpYyB2b2lkIFhYWCgpIHsKICAgIEIgYiA9IG5ldyBCKCk7CiAgICBiLkdlbmVyYXRlRGF0YSh0aGlzOjpaWlopOwogIH0KICBwdWJsaWMgdm9pZCBaWlooaW50IG4pIHsKICAgIFN5c3RlbS5vdXQucHJpbnRsbigibiA9ICIgKyBuKTsKICB9Cn0KCmNsYXNzIE1haW4gewogIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgIEEgYSA9IG5ldyBBKCk7CiAgICBhLlhYWCgpOwogIH0KfQo=