В Java лямбда-выражение создаёт экземпляр функционального интерфейса… — Java библиотека — TG.ME

В Java лямбда-выражение создаёт экземпляр функционального интерфейса. Во время выполнения этот экземпляр создаётся с помощью класса LambdaMetaFactory

Следующий код на Java создаёт объект Function<String, String>

Function<String, String> f = s -> s.toUpperCase();


Во время выполнения объект создаётся с помощью кода, аналогичного следующему:

@SuppressWarnings("unchecked")
void main() throws Throwable {
MethodHandles.Lookup lookup;
lookup = MethodHandles.lookup();

CallSite callSite;
callSite = LambdaMetafactory.metafactory(
lookup,
"apply",
MethodType.methodType(Function.class),
MethodType.methodType(Object.class, Object.class),
lookup.findStatic(
getClass(),
"lambda",
MethodType.methodType(String.class, String.class)
),
MethodType.methodType(String.class, String.class)
);

MethodHandle target;
target = callSite.getTarget();

Function<String, String> f;
f = (Function<String, String>) target.invokeExact();

String msg;
msg = f.apply("Hello, World!");

IO.println(msg);
}

private static String lambda(String s) {
return s.toUpperCase();
}


При выполнении этот код выведет в консоль HELLO, WORLD!

Полезные ресурсы по Java
👩‍💻| Наш канал в MAX 🟪
🔥6👍4❤2
August 24, 2026 2.1K 12