첫 번째 람다 표현
Lambda가 나타나기 전에 멀티 스레드를 작성 해야하는 경우 다음 방법이 필요할 수 있습니다.
runnable runnable = new Runnable () {@override public void Run () {System.out.println ( "Hello Runnable"); }}; ... Thread.start ();Lambda 사용으로 변경하면 위의 예가 훨씬 쉬워집니다.
runnable noargs = ()-> system.out.println ( "Hello Lambda! ~"); ... Thread.start ();
Lambda 표현은 데이터와 같은 동작을 전달하는 익명 기능입니다. 표현식은 ->를 사용하여 매개 변수를 ->에서 파라미터 부분을 앞에 놓기 위해 사용한 다음 신체 부분입니다.
람다의 다른 형태
Binaryoperator <long> add = (x, y)-> x+y; // 또는 binaryoperator <long> add = (long x, long y)-> x+y; // 또는 binaryoperator <long> add = (long x, long y)-> {x+y; };위의 모든 형태는 람다 표현의 모든 형태입니다.
그런 다음 질문은 다음과 같습니다.
binaryoperator <long> add = (long x, long y)-> x+y; 평균?
이 코드 라인은 숫자를 추가하는 것에 대해 이야기하지 않지만 두 숫자를 추가 한 결과를 계산하는 함수를 만듭니다. 추가 유형은 Binaryoperator <long>이며, 이는 두 숫자의 합이 아니라 두 숫자를 추가하는 코드입니다. 다음 예제는이 변수를 사용하는 방법을 보여줍니다.
Binaryoperator <long> add = (Long X, Long Y)-> X+Y; long res = add.Apply (3L, 4L); System.out.println ( "res ="+res); // 출력 : res = 7
기능 인터페이스
함수 인터페이스는 람다 표현식 유형으로 사용되는 하나의 추상 방법 만있는 인터페이스입니다.
예를 들어, runnable은 함수 인터페이스입니다.
새 기능 인터페이스 생성 :
public interface addoperator <t, d> {long add (t one, d two);}사용:
AddOperator <long, long> addoperator = (x, y)-> x +y; System.err.println ( "사용자 정의 기능 리스너 Res ="+addoperator.add (34L, 65L));
대상 유형
대상 유형은 Lambda 표현이 위치한 컨텍스트의 유형을 나타냅니다. 예를 들어, Lambda 표현식을 로컬 변수에 할당하거나 매개 변수로 메소드로 전달하십시오. 로컬 변수 또는 메소드 파라미터의 유형은 Lambda 표현식의 목표 유형입니다.
결정적인
익명 내부 클래스의 메소드에서 로컬 변수를 참조하면 로컬 변수가 최종이어야합니다.
Lambda에서는 참조 된 외부 로컬 변수를 최종으로 선언 할 필요가 없지만 변수는 한 번만 할당 할 수 있습니다.
다음 예에서, 주석을 제거하고 이름을 다시 할당하면 컴파일되지 않고 오류 메시지가 표시됩니다. Lambda 표현식에서 참조 된 로컬 변수는 최종적이거나 효과적으로 최종적이어야합니다.
Lambda Expression에 의해 언급 된 로컬 변수는 최종적이거나 사실이어야합니다.
문자열 이름 = getUserName (); // name = "hi"; button.addactionListener (event-> system.out.println ( "name ="+name));
수용 추론
Lambda 표현식의 유형 추론은 Java7에 도입 된 대상 유형 추론의 확장입니다.
Java7의 수용 추론 :
List <string> list = new ArrayList <> ();
위의 예에서는 Arraylist의 패러다임 유형을 지정하지 않고 목록 유형에 따라 Arraylist의 패러다임 유형을 추론했습니다.
예를 들면 다음과 같습니다. AddOperator <long, long> addoperator = (x, y)-> x +y;
이 기사를 통해 지식 의이 부분을 배우고 이해하는 데 도움이되기를 바랍니다. 이 웹 사이트를 지원 해주셔서 감사합니다!