Issue
I want to simply pass a lambda (chunk of code) and execute it when I need to. How do I implement the method executeLambda(...) in the code below (as well what is the method signature):
public static void main(String[] args)
{
    String value = "Hello World";
    executeLambda(value -> print(value));
}
public static void print(String value)
{
    System.out.println(value);
}
public static void executeLambda(lambda)
{
    someCode();
    lamda.executeLambdaCode();
    someMoreCode();
}
                        
                        Solution
Your lambda takes one parameter, but you only pass the lambda to executeLambda, not the value. If you want the lambda to capture the local variable, don't write it taking a parameter, but if you do really want it to take one parameter, you would write it like this:
import java.util.function.Consumer;
public static void main(String[] args) {
    String message = "Hello World";
    executeLambda(message, value -> print(value));
}
public static void executeLambda(String value, Consumer<String> lambda) {
    lambda.accept(value);
}
If you want it to capture the value, then use Runnable, write the lambda as () -> print(value), and call it like runnable.run().
Answered By - David Conrad Answer Checked By - Senaida (PHPFixing Volunteer)
0 Comments:
Post a Comment
Note: Only a member of this blog may post a comment.