Found 4338 Articles for Java 8

What are the in-built functional interfaces in Java?

raja
Updated on 10-Jul-2020 14:00:23

6K+ Views

The java.util.function package defines several in-built functional interfaces that can be used when creating lambda expressions or method references.Inbuilt functional interfaces:1) Function InterfaceThe Function interface has only one single method apply(). It can accept an object of any data type and returns a result of any datatype.Exampleimport java.util.*; import java.util.function.*; public class FunctionTest {    public static void main(String args[]) {       String[] countries = {"India", "Australia", "England", "South Africa", "Srilanka", "Newzealand", "West Indies", "Scotland"};       Function converter = (all) -> {  // lambda expression          String names = "";       ... Read More

What are the constructor references in Java?

raja
Updated on 10-Jul-2020 13:55:56

219 Views

A constructor reference is just like a method reference except that the name of the method is "new". It can be created by using the "class name" and the keyword "new" with the following syntax.Syntax :: newIn the below example, we are using java.util.function.Function. It is a functional interface whose single abstract method is the apply(). The Function interface represents an operation that takes single argument T and returns a result R.Exampleimport java.util.function.*; @FunctionalInterface interface MyFunctionalInterface {    Employee getEmployee(String name); } class Employee {    private String name;    public Employee(String name) {       this.name = name;    }    public String ... Read More

How to implement the listeners using lambda expressions in Java?

raja
Updated on 10-Jul-2020 13:50:30

1K+ Views

When we are using a lambda expression for java listener, we do not have to explicitly implement the ActionListener interface. Instead, we can use the below syntax.Syntaxbutton.addActionListener(e -> { // some statements });An ActionListener interface defines only one method actionPerformed(). It is a functional interface which means that there's a place to use lambda expressions to replace the code.Exampleimport java.awt.*; import java.awt.event.*; import javax.swing.*; public class LambdaListenerTest extends JFrame {    public static void main(String args[]) {       new LambdaListenerTest();    }    private JButton button;    public ClickMeLambdaTest() {       setTitle("Lambda Expression Test");       button = ... Read More

How can we pass lambda expression in a method in Java?

raja
Updated on 10-Jul-2020 12:50:58

2K+ Views

A lambda expression passed in a method that has an argument of type of functional interface. If we need to pass a lambda expression as an argument, the type of parameter receiving the lambda expression argument must be of a functional interface type.In the below example, the lambda expression can be passed in a method which argument's type is "TestInterface". Exampleinterface TestInterface {    boolean test(int a); } class Test {    // lambda expression can be passed as first argument in the check() method    static boolean check(TestInterface ti, int b) {       return ti.test(b);    } } public class ... Read More

What kind of variables can we access in a lambda expression in Java?

raja
Updated on 11-Dec-2019 12:30:52

812 Views

The lambda expressions consist of two parts, one is parameter and another is an expression and these two parts have separated by an arrow (->) symbol. A lambda expression can access a variable of it's enclosing scope. A Lambda expression has access to both instance and static variables of it's enclosing class and also it can access local variables which are effectively final or final.Syntax( argument-list ) -> expressionExampleinterface TestInterface {    void print(); } public class LambdaExpressionTest {    int a; // instance variable    static int b; // static variable    LambdaExpressionTest(int x) {    // constructor to initialise instance variable       this.a = ... Read More

Differences between Lambda Expressions and Closures in Java?

raja
Updated on 10-Jul-2020 12:46:52

2K+ Views

Java supports lambda expressions but not the Closures. A lambda expression is an anonymous function and can be defined as a parameter. The Closures are like code fragments or code blocks that can be used without being a method or a class. It means that Closures can access variables not defined in its parameter list and also assign it to a variable.Syntax([comma seperated parameter-list]) -> {body}In the below example, the create() method has a local variable "value" with a short life and disappears when we exit the create() method. This method returns the closure to the caller in the main() method after that ... Read More

What are the characteristics of lambda expressions in Java?

raja
Updated on 10-Jul-2020 12:44:50

878 Views

The lambda expressions were introduced in Java 8 and facilitate functional programming. A lambda expression works nicely together only with functional interfaces and we cannot use lambda expressions with more than one abstract method.Characteristics of Lambda ExpressionOptional Type Declaration − There is no need to declare the type of a parameter. The compiler inferences the same from the value of the parameter.Optional Parenthesis around Parameter − There is no need to declare a single parameter in parenthesis. For multiple parameters, parentheses are required.Optional Curly Braces − There is no need to use curly braces in the expression body if the body contains a ... Read More

How to handle an exception using lambda expression in Java?

raja
Updated on 10-Jul-2020 12:01:45

2K+ Views

A lambda expression body can't throw any exceptions that haven't specified in a functional interface. If the lambda expression can throw an exception then the "throws" clause of a functional interface must declare the same exception or one of its subtype.Exampleinterface Student {    void studentData(String name) throws Exception; } public class LambdaExceptionTest {    public static void main(String[] args) {       // lamba expression        Student student = name -> {          System.out.println("The Student name is: " + name);          throw new Exception();       };       try {          student.studentData("Adithya");       } catch(Exception e) {       }    } }OutputThe Student name is: Adithya

How to use a final or effectively final variable in lambda expression in Java?

raja
Updated on 10-Jul-2020 11:58:59

2K+ Views

The effectively final variables refer to local variables that are not declared final explicitly and can't be changed once initialized. A lambda expression can use a local variable in outer scopes only if they are effectively final.Syntax(optional) (Arguments) -> bodyIn the below example, the "size" variable is not declared as final but it's effective final because we are not modifying the value of the "size" variable.Exampleinterface Employee {    void empData(String empName); } public class LambdaEffectivelyFinalTest {    public static void main(String[] args) {       int size = 100;       Employee emp = name -> {        // lambda ... Read More

What are the advantages of Lambda Expressions in Java?

raja
Updated on 10-Jul-2020 11:46:57

3K+ Views

A lambda expression is an inline code that implements a functional interface without creating a concrete or anonymous class. A lambda expression is basically an anonymous method.Advantages of Lambda ExpressionFewer Lines of Code − One of the most benefits of a lambda expression is to reduce the amount of code. We know that lambda expressions can be used only with a functional interface. For instance, Runnable is a functional interface, so we can easily apply lambda expressions.Sequential and Parallel execution support by passing behavior as an argument in methods − By using Stream API in Java 8, the functions are passed to collection methods. Now ... Read More

Advertisements