자바 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]
더 많은 자바 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 고 에서 말 한 것 이 여러분 의 자바 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.