package lamda.first; import lamda.userdefined.functional.interfaces.DoubleNumericArrayFunc; import lamda.userdefined.functional.interfaces.StringFunc; public class LamdaAsArgsDemo { public static void main(String[] args) throws EmptyArrayException{ String inputStr = "Lamda adds power"; String outStr; System.out.println("Input string is : " + inputStr); // parssing single line/singe method outStr = StringOper(String::toLowerCase, inputStr); System.out.println("Output String is : "+outStr); //passing block as function outStr = StringOper(str->{ String s=""; for (int i=str.length()-1;i>=0;i--){ s=s+str.charAt(i); } return s; },inputStr); System.out.println("Output String is :"+ outStr); //passing instance as functional parameter StringFunc strfuc = str -> { String s = ""; for (int i = str.length() - 1; i >= 0; i--) { s = s + str.charAt(i); } return s; }; outStr = StringOper(strfuc,"Hello World..."); System.out.println("out put by Passing reference : "+outStr); //Lamda EXCEPTION DEMO double d[] = {1.0, 2.0, 3.0, 4.0, 5.0}; DoubleNumericArrayFunc average = n-> { if(n.length ==0){ throw new EmptyArrayException(); } double sum = 0.0; for (int i=0; i