[Java] 2020.12.11. day_35 Thread로 다중채팅 만들기, 람다식

2020. 12. 11. 16:44Web_Back-end/Java SE

 

 

◎ Lambda : 람다식

- Lambda : 람다식
- 인터페이스를 편하게 사용할 수 있는 문법
↪ 인터페이스를 사용하려면
인터페이스 → 구현한 클래스를 작성
인터페이스 → 추상메소드를 Override

위의 필요성이 사라진다
JavaSE 8 (JDK 1.8)에서부터 추가된 문법
구현클래스 없이, abstract method를 Override하지 않아도 interface사용가능
 ( Override하긴 한다 → 방식이 조금 바뀜 )
인터페이스의 abstract method가 하나인 경우에면 람다식 사용가능
 == SAM : Single Abstract Method  @FunctionalInterface
interface를 정의할 때 interface위에 @FunctionalInterface 을 사용하면
그 interface는 SAM으로만 작성될 수 있다
문법
  인터페이스명 객체명 = (매개변수,,)->{ 코드작성 };
 (매개변수,,) abstract method의 parameter정의 부
{ 코드작성 } abstract method의 구현부
(매개변수,,)->{ 코드작성} abstract method를 Override하는 코드

○ 람다식 간단하게 사용해보기

//1.
public interface Test{
	public void test();
}

//2. 
public interface Test{
	public String myName();
}

//3. 
public interface Test{
	public void myName(String name);
}

▲ 위의 abstract method들을 아래 ▼ 처럼 사용 가능하다

//1.
Test t = ()->{System.out.println("Override");};

//2.
Test t = ()->{return "memo";};

//3.
Test t = (String n)->{System.out.println(n);};

▼ method 호출하는 방법

//1. 
t.test();
//console : Override

//2.
System.out.println(t.myName());
//console : memo

//3. 
t.myName("김코비");
//console : 김코비

람다식을 사용할 수 있는 인터페이스
간단하게 람다식사용해보기
객체로 호출하는 방법도 사용할 수 있다

※ FunctionalInterface 를 주석처리하고 abstract method를 하나 더 만들어보기

@FunctionlInterface 주석처리+method하나 더 만들기
오류발생