lambda 표현 식 사용
자바 lambda 표현 식 의 장단 점:장점:
코드 간결,개발 신속편리 함수 식 프로 그래 밍
4.567917.병행 계산 이 매우 쉽다.
자바 lambda 도입,집합 작업 개선(Stream API 도입)단점:코드 가 독성 이 떨 어 집 니 다.2.언어 학습 곡선 이 가 파 르 고 학습 난이도 가 높 아 집 니 다4.567917.성능 에 있어 비 병행 계산 에서 많은 계산 이 반드시 전통 적 인 for 성능 이 높 은 것 은 아니다.
디 버 깅 이 쉽 지 않 습 니 다.
나 는 작은 demo 를 써 서 하나의 인터페이스 에 대해 흔히 볼 수 있 는 세 가지 실현 방식(클래스 재 작성 방법,익명 내부 클래스 실현,lambda)의 대 비 를 실현 했다.그 중에서 lambda 표현 식 을 사용 했다.
장면:button 을 클릭 하여 button 이름 을 표시 합 니 다.
OnClickListener.java
package com.hmkcode;
public interface OnClickListener {
void onClick(Button button);
}
Button.java
package com.hmkcode;
@lombook
public class Button {
private OnClickListener onClickListener;
private String name;
// click the button
public void click(){
this.onClickListener.onClick(this);
}
}
실현 1:onClick 재 작성 방법
public class App implements OnClickListener
{
public static void main( String[] args ){...}
public void run(){
Button myButton = new Button();
myButton.setName("MyButton");
// 1. implements onClickListener
myButton.setOnClickListener(this);
// click the button
myButton.click();
}
@Override
public void onClick(Button button) {
System.out.println(button.getName() +" Clicked! - implements interface");
}
}
구현 2:익명 내부 클래스
public class App
{
public static void main( String[] args ){...}
public void run(){
Button myButton = new Button();
myButton.setName("MyButton");
// 2. anonymous class
myButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(Button button) {
System.out.println(button.getName() +" Clicked! - anonymous class");
}
});
// click the button
myButton.click();
}
}
구현 3:lambda 표현 식:
public class App
{
public static void main( String[] args ){...}
public void run(){
Button myButton = new Button();
myButton.setName("MyButton");
// 3. lambda
OnClickListener lambda = button -> { System.out.println(button.getName()+" Clicked! - lambda"); } ;
myButton.setOnClickListener(lambda);
// click the button
myButton.click();
}
}
내 가 보기에 일반적인 장면 에서 for 순환 계산 처리 의 효율 은 lambda 표현 식 보다 좋 고 lambda 표현 식 은 병렬 계산,집합(흐름 처리)에 적합 하 다.집합 류 의 처 리 는 정말 편리 하 다.다만 가 독성 이 너무 떨 어 지고 debug 도 불편 하 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
vim + sed 로 셸 스 크 립 트 파일 정리 하기/etc/sysconfig/network008 009 # Check that networking is up.010 [ ${NETWORKING} = "no" ] && exit 0011 012 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.