자바 Lambda 표현 식 입문 예시
4334 단어 JavaLambda 표현 식
눈여겨보다
Lambda 표현 식 은 코드 블록 을 방법 매개 변수 로 지원 합 니 다.Lambda 표현 식 은 추상 적 인 방법 만 있 는 인터페이스(함수 식 인터페이스)의 인 스 턴 스 를 만 들 수 있 습 니 다.
Lambda 표현 식 의 주요 역할 은 익명 내부 클래스 의 번 거 로 운 문법 을 대체 하 는 것 입 니 다.
그것 은 세 부분 으로 구성 되 어 있다.
코드
Command 인터페이스
public interface Command
{
// process() “ ”
void process(int[] target);
}
ProcessArray 클래스
public class ProcessArray {
public ProcessArray() {
}
public void process(int[] target, Command cmd) {
cmd.process(target);
}
}
CommandTest 클래스
public class CommandTest {
public CommandTest() {
}
public static void main(String[] args) {
ProcessArray pa = new ProcessArray();
int[] array = new int[]{3, -4, 6, 4};
pa.process(array, new Command() {
public void process(int[] target) {
int sum = 0;
int[] var3 = target;
int var4 = target.length;
for(int var5 = 0; var5 < var4; ++var5) {
int tmp = var3[var5];
sum += tmp;
}
System.out.println(" :" + sum);
}
});
}
}
2 운행배열 요소 의 합 계 는:9 입 니 다.
3.Lambda 표현 식 으로 명령 모드 구현
코드
public class CommandTest2
{
public static void main(String[] args)
{
ProcessArray pa = new ProcessArray();
int[] array = {3, -4, 6, 4};
// ,
pa.process(array , (int[] target)->{
int sum = 0;
for (int tmp : target )
{
sum += tmp;
}
System.out.println(" :" + sum);
});
}
}
2 운행배열 요소 의 합 계 는:9 입 니 다.
비교
Lambda 표현 식 은 익명 의 내부 클래스 와 비교 할 때 new XXX(){}과 같은 번 거 로 운 코드 가 필요 하지 않 습 니 다.재 작성 방법 이름 을 가리 킬 필요 가 없습니다.재 작성 방법의 반환 값 형식 을 제시 할 필요 가 없습니다.재 작성 방법 괄호 와 괄호 안의 인삼 목록 만 제시 하면 됩 니 다.
Lambda 표현 식 의 코드 블록 은 실현 방법의 방법 체 를 대체 합 니 다.Lambda 표현 식 은 익명 의 방법 과 같 습 니 다.
5 Lambda 표현 식 의 간소화 문법
코드
interface Eatable
{
void taste();
}
interface Flyable
{
void fly(String weather);
}
interface Addable
{
int add(int a , int b);
}
public class LambdaQs
{
// Eatable
public void eat(Eatable e)
{
System.out.println(e);
e.taste();
}
// Flyable
public void drive(Flyable f)
{
System.out.println(" :" + f);
f.fly("【 】");
}
// Addable
public void test(Addable add)
{
System.out.println("5 3 :" + add.add(5, 3));
}
public static void main(String[] args)
{
LambdaQs lq = new LambdaQs();
// Lambda , 。
lq.eat(()-> System.out.println(" !"));
// Lambda ,
lq.drive(weather ->
{
System.out.println(" :" + weather);
System.out.println(" ");
});
// Lambda ,
// , , return 。
lq.test((a , b)->a + b);
}
}
2 운행LambdaQs$$Lambda$1/1078694789@3d075dc0
사과 맛 이 좋다!
운전 중:LambdaQs$$Lambda$2/1149319664@7cca494b
오늘 날 씨 는:[푸 른 하늘 이 씻 은 듯 맑 은 날]
헬리콥터 가 평온하게 비행 하 다.
5 와 3 의 합 은 8 이다.
더 많은 자바 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 고 에서 말 한 것 이 여러분 의 자바 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.