Java has (limited) type inference now I think, right? Does this work for the example you gave?
public class Main {
public static void main(String[] args) {
var add = x -> y -> x + y;
var addFive = add.apply(5);
int result = addFive.apply(3); // Output will be 8
}
}
Still not great, but a lot better than the original IMO