의뢰에서 lambda 표현식 소개 (왜 lambda 표현식이 필요합니까)
5002 단어 java8
다음에 필자는 간단한 말투로java8의 새로운 특성, lambda 표현식을 소개할 것이다.
가장 간단한 방법으로 왜 lambda 표현식이 필요한지 알려드릴게요.
간단하게 의뢰를 설명하자면'방법을 매개 변수로 전달한다'는 것이다.
출처:
프로그램에 코드를 전송하는 방법이 필요할 때가 있습니다.예:
public class MainClass(){
public static final void test(){
if(true){
//
//
//……
//
}else if{
//
}
}
}
어떤 원인 때문에if의 코드는 반드시 빈번하게 수정해야 한다.이럴 때는 방법을 대상의 방법에 적고 대상을 프로그램에 전송해서 대응하는 방법을 사용해야 한다.(재구성)
public class MainClass(){
public static final void test(MilkSender c){
if(true){
c.sendMilk();
}else if{
//
}
}
}
public class MilkSender (){
public void sendMilk(){
//
//
//……
//
}
}
MainClass.test(new MilkSender());
이 때 우리는 테스트의 코드를 하드코딩으로 수정하지 않아도 '방법에서 사용자 정의 인코딩을 실행할 수 있다' 는 효과를 얻을 수 있다.하지만 이제 우리는 MyClass 대상 중의 한 가지 방법만 필요합니다. MyClass 대상 전체를 다 넣으면 좀 어지러워 보입니다. 한 가지 방법만 전달할 수 있는 방법은 없을까요?답은 있다. 인터페이스 하나만 입력하면 된다.
public static final void test(MyClassInterface c){
if(true){
c.doSomething();
}
}
public interface MyClassInterface (){
public void doSomething();
}
이런 형식의 인코딩을 우리는 잠시 방법 의뢰라고 부른다.(이런 명칭은 C/C++에서 유래했기 때문)
이렇게 하면 매번 직접 '익명 대상' 을 만들 수 있다
MainClass.test(new MyClass(){
@Override
public void doSomething(){
System.out.println("good1");
}
);
MainClass.test(new MyClass(){
@Override
public void doSomething(){
System.out.println("good2");
}
);
이런 형식의 인코딩을 우리는 익명 대상 인코딩이라고 부른다.
응, 좀 예뻐졌는데 아직도 불편해 보여.
때로는 코드 한 마디가 필요할 뿐인데 적어도 다섯 줄의 코드를 썼다.(가독성과'고도'문제를 가져왔다) 그래서'고도 문제'를 해결하기 위해 우리는 lambda 표현식을 도입했다.
public void main(String[] args){
DamnedDesigner.test(()->System.out.println("good1"));
DamnedDesigner.test(()->System.out.println("good2"));
}
원래 지루했던 코드가 단번에 뚜렷하고 간결하며 빠르게 변했다.
lambda 표현식은 자바뿐만 아니라 C#, C++ 등 일반적인 프로그래밍 언어에도 적용된다.lambda 표현식은java8의 가장 큰 하이라이트입니다.(콜록콜록, 10년 정도 뒤지고 시작했지만).자바8은 국내에서 보급률이 상당히 낮지만 필자는 이것이 미래의 추세가 될 것이라고 믿는다.
방법 의뢰가 무엇인지, 익명 대상이 무엇인지, lambda 표현식이 무엇인지 이미 알고 있다.(lambda 표현식이 실용적이냐고 물어보면 대단해!)lambda 표현식의 구체적인 소개는 다음 편을 보십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Liquibase】DB 작성·테이블 정의 변경신규 스타터 프로젝트 작성 Liquibase와 MySQL 선택 application.properties에 DB 정보 넣기 MySQL에서 "testdatabase"라는 데이터베이스 만들기 빌드 종속성 추가 build....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.