Sunday, January 27, 2019

Functional Interface: is an interface it contains only one abstract method and declares with annotation @FunctionalInterface
E.g:
                        @FunctionalInterface
                        interface ReverseString{
String reverse(String n);
                        }

    public class ImplementingLamdaExpression {
         public static void main(String args[]){
ReverseString myreverse= str ->{
String result="";
for(int i=str.length()-1;i>0;i--){
result=result+str.charAt(i);
}
return result;
};
System.out.println(myreverse.reverse("avinash"));
}
   }

Why?- To enable functional programming in java we use lamda expression
Advantages of Functional programming:
  • you can assign function to a variable i.e. a=func()
  • you can pass function as parameter to other function i.e. fun(fun)
Examples of functional interface:
     Runnable-> only one abstract method - run()
     Callable-> only one abstract method -  call()
     Comparable-> only one abstract method -compareTo()

Default and static methods in an interface:
     Before 1.8 interface contains only abstract methods. Later, interface allows default static methods

i.e. functional interface can have 100's of default and static methods but should have only one abstract method

Interface interf
{
public void abstract m4();-- This wont throw any error and will not be considered as functional interface as it is having more than on abstract method
public void abstract m1();

public void default m2()
{
}

public void static m3()
{
}

}

@FunctionalInterface(This is the using of @FunctionalInterface annotation)
Interface interf
{

public void abstract m1();
public void abstract m4();-- This will throw error saying that functional interface should have only abstract method
public void default m2()
{
}

public void static m3()
{
}


Related Posts:

  • Retrieve Test Data from an Excel file with Apache POI A Java Program to retrieve the data from an excel file?   Below is the code to read .xlsx file.                                XSSFWorkbo… Read More
  • ArrayList vs LinkedList Difference between ArrayList and LinkedList? Similarities: Both implements List interface(linkedlist also implements deque interface), maintains insertion order and can contain duplicate elements. Both are non synchroni… Read More
  • Encapsulation in Java Encapsulation is to make sure that "sensitive" data is hidden from users. To achieve this, you must: declare class variables/attributes as private (only accessible within the same class) provide public setter and getter m… Read More
  • Why String is Immutable? What is mean by immutable object/class? Assume we have a below class A as mutable: Class A{ int i = 10; int j = 20; A a = new A(); } a.i = 30; a.j = 40; Changing state of objects, so A is mutable. Immutable: once o… Read More
  • Introduction to Software Testing Software Testing:  The process of verifying or validating an application with the intention of finding bugs or defect in software so that it could be corrected before product is delivered to the end user.   … Read More

0 comments:

Post a Comment

Selenium Training in Realtime

Blog helps to a student or IT employee to develop or improve skills in Software Testing.

Followers

About Me

My photo
Hyderabad, Andhra Pradesh, India
I am Automation Testing Professional. I have completed my graduation in B.Tech (Computers) from JNTU Hyderabad and started my career in Software Testing accidentally since then, I passionate on learning new technologies

Contact Form

Name

Email *

Message *

Popular Posts