자바 Lambda 표현 식 방법 참조 및 구조 기 참조 사례 분석

3167 단어 JavaLambda 표현 식
본 고의 실례 는 자바 람 다 표현 식 의 방법 인용 과 구조 기 인용 을 서술 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
눈여겨보다
Lambda 표현 식 의 코드 블록 이 하나의 코드 만 있다 면 코드 블록 에서 방법 참조 와 구조 기 참조 로 Lambda 표현 식 을 더욱 간결 하 게 할 수 있 습 니 다.
종류.
예시
설명 하 다.
대응 하 는 Lambda 표현 식
인용 클래스 방법
클래스:클래스 방법
함수 식 인터페이스 에서 실 현 된 방법의 모든 매개 변 수 는 이러한 방법 에 매개 변수 로 전 달 됩 니 다.
(a,b,...)->클래스 이름.클래스 방법(a,b,...)
특정 대상 의 인 스 턴 스 방법 참조
특정 대상:인 스 턴 스 방법
함수 식 인터페이스 에서 실 현 된 방법의 모든 매개 변 수 는 이 방법 을 매개 변수 로 전달 합 니 다.
(a,b,...)->특정 대상.인 스 턴 스 방법(a,b,...)
어떤 대상 의 인 스 턴 스 방법 을 참조 합 니 다.
클래스 이름:인 스 턴 스 방법
함수 식 인터페이스 에서 실 현 된 방법의 첫 번 째 매개 변 수 는 호출 자로 서 뒤의 매개 변 수 는 모두 이 방법 에 매개 변수 로 전 달 됩 니 다.
(a,b,...)->a.실례 방법(b,...)
인용 구조 기
클래스 이름:new
함수 식 인터페이스 에서 실 현 된 방법의 모든 매개 변 수 는 이 구조 기 에 매개 변수 로 전 달 됩 니 다.
(a,b,...)->new 클래스(a,b,...)
실전
코드

import javax.swing.*;
@FunctionalInterface
interface Converter{
  Integer convert(String from);
}
@FunctionalInterface
interface MyTest
{
  String test(String a , int b , int c);
}
@FunctionalInterface
interface YourTest
{
  JFrame win(String title);
}
public class MethodRefer
{
  public static void main(String[] args)
  {
   //       Lambda     Converter  
//  Converter converter1 = from -> Integer.valueOf(from);
   //       Lambda   :     。
   //                           。
   Converter converter1 = Integer::valueOf;
   Integer val = converter1.convert("99");
   System.out.println(val); //     99
   //       Lambda     Converter  
//  Converter converter2 = from -> "fkit.org".indexOf(from);
   //       Lambda   :           。
   //                          。
   Converter converter2 = "fkit.org"::indexOf;
   Integer value = converter2.convert("it");
   System.out.println(value); //   2
   //       Lambda     MyTest  
//  MyTest mt = (a , b , c) -> a.substring(b , c);
   //       Lambda   :           。
   //                       ,
   //                 。
   MyTest mt = String::substring;
   String str = mt.test("Java I Love you" , 2 , 9);
   System.out.println(str); //   :va I Lo
   //       Lambda     YourTest  
//  YourTest yt = (String a) -> new JFrame(a);
   //        Lambda   。
   //                           。
   YourTest yt = JFrame::new;
   JFrame jf = yt.win("    ");
   System.out.println(jf);
  }
}

2 운행
99
2
va I Lo
javax.swing.JFrame[frame 0,0,0,0 x0,invalid,hidden,layout=java.awt.OrderLayout,title=나의 창,resizable,normal,defaultClose Operation=HIDEON_CLOSE,rootPane=javax.swing.JRootPane[,0,0,0x0,invalid,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
더 많은 자바 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 고 에서 말 한 것 이 여러분 의 자바 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기