Другой ответ дал объяснение , почему это не сработает. Вот как вы можете заставить это работать. Проще говоря, вы должны дать Java некоторое предположение относительно того, во что должна превратиться лямбда, иначе она не будет компилироваться. (Я предлагаю принять их ответ, поскольку он дает реальную причину вашей проблемы. Я публикую это только потому, что могу сочувствовать желанию распечатать все, когда узнаю что-нибудь Java и разочарование, которое, должно быть, пришло.)
import java.util.function.Supplier;
public class Main
{
public static void main(String[] args) {
// prints "Main$$Lambda$1/0x0000000801185840@38af3868"
System.out.println((Supplier<String>) () -> {
String s = "Akhilesh";
return s;
});
Object obj = (Supplier<String>) () -> {
String s = "Akhilesh";
return s;
};
Supplier<String> supplier = () -> {
String s = "Akhilesh";
return s;
};
// prints "Main$$Lambda$2/0x0000000801186040@72ea2f77"
System.out.println(obj);
// prints "Main$$Lambda$3/0x0000000801186440@33c7353a"
System.out.println(supplier);
// prints "Akhilesh"
System.out.println(supplier.get());
}
}
См. документацию для java .util.function module .