0

What does ()->{} represent in java?. Any help would be highly appreciated.

Vivek Kumar
  • 419
  • 4
  • 12

2 Answers2

4

It's a lambda expression, basically a concise way of writing a function. ()->{} is a function that takes no arguments and does nothing. A longer way of writing the same thing:

new Runnable() {
    @Override
    public void run() {
        // nothing
    }
};
takteek
  • 7,020
  • 2
  • 39
  • 70
  • Why would someone write a function that does **nothing**? – TDG Apr 29 '17 at 06:46
  • 2
    It could actually be useful as a NOOP default value for something. E.g. an optional callback because if the default is `()->{}` then you don't need to check for null. Basically the Null Object pattern – takteek Apr 29 '17 at 07:03
0

Let's consider old way of writing functions(i.e methods) in java.

//lets assume this is inside calculate class
public int sum(int a, int b){
     return a+b;
}

in java 8 we have something called lambda's in which we have concept called passing behaviours(methods) to another behaviour(methods).

in those case we use syntax like (a,b) -> return a+b;

BiFunction<Integer,Integer,Integer> sum= (a,b)->{
            return a+b;
        };

System.out.println(sum.apply(1, 2));

Even we can store Function in a variable and pass to another function. you can see here

now lets see about syntax (a,b) ->{ return a + b}; (a,b) are arguments to function;

and the line of code inside {} represent the behaviour. -> is to separate both left and right expressions.

you can explore more about java8 and lambda over here

Community
  • 1
  • 1
kavetiraviteja
  • 2,058
  • 1
  • 15
  • 35