DoubleUnaryOperator is a functional interface that lives in java.util.function package.
It has one function applyAsDouble, which takes a double and returns a double.
It is called an UnaryOperator, because it performs it's action on a single argument.
And, that single argument is of double type that's why it has Double in it's name.
We can implement this interface in different ways.
Implementation By a regular class.
private class DBLImple implements DoubleUnaryOperator{
@Override
public double applyAsDouble(final double dblValue){
return dblValue * dblValue;
}
}
Implementation By an anonymous class.
final DoubleUnaryOperator dblOp = new DoubleUnaryOperator(){
@Override
public double applyAsDouble(final double dblValue){
return dblValue * dblValue;
}
};
Implementation 1 - Using Lambda function
final DoubleUnaryOperator dblLambda_1 = (double dblValue) -> { return dblValue * dblValue ; };
Implementation 2 - Using Lambda Function
final DoubleUnaryOperator dblLambda_2 = dblValue -> dblValue * dblValue;
You can watch my youtube video to see me code the implementations.
[embed]https://youtu.be/pRBSwxEikZQ[/embed]
Full Source Code :-
import java.util.function.DoubleUnaryOperator;
public class DoubleUnaryOperatorImplementation{
//Implementation by a regular class
private class DBLImple implements DoubleUnaryOperator{
@Override
public double applyAsDouble(final double dblValue){
return dblValue * dblValue;
}
}
//Anonymous class implementation
final DoubleUnaryOperator dblOp = new DoubleUnaryOperator(){
@Override
public double applyAsDouble(final double dblValue){
return dblValue * dblValue;
}
};
//Lambda implementation 1
final DoubleUnaryOperator dblLambda_1 = (double dblValue) -> { return dblValue * dblValue ; };
//Lambda Implementation 2
final DoubleUnaryOperator dblLambda_2 = dblValue -> dblValue * dblValue;
public static void main(final String... args){
final DoubleUnaryOperatorImplementation obj = new DoubleUnaryOperatorImplementation();
final DBLImple dblObj = obj.new DBLImple();
System.out.println(dblObj.applyAsDouble(12.0));
System.out.println(obj.dblOp.applyAsDouble(12.0));
System.out.println(obj.dblLambda_1.applyAsDouble(12.0));
System.out.println(obj.dblLambda_2.applyAsDouble(12.0));
}
}