> Java > java지도 시간 > 본문

Java8의 람다 표현식 구문 소개

黄舟
풀어 주다: 2017-09-19 10:39:38
원래의
1567명이 탐색했습니다.

우리 모두 알고 있듯이 람다 표현식은 JAVA8에서 제공되는 새로운 기능입니다. 이는 Java를 지원하며 간단한 "함수형 프로그래밍"도 수행할 수 있습니다. 다음 글은 주로 Java8 학습 튜토리얼의 람다 표현식 구문에 대한 관련 정보를 소개합니다.

머리말

Java8에서 람다 표현식이 도입되었다는 사실은 모두가 알고 있을 것입니다. 동작 매개변수화의 관점에서 사용할 때 동작을 매개변수로 사용하여 외부 레이어를 둘러싼 불필요한 클래스 선언을 제거하세요. 코드가 더 간결해졌습니다.

lambda 표현식 구문

lambda 표현식은 매개변수, -> 및 함수 본문의 세 부분으로 구성됩니다. 실제로 함수 본문은 표현식이나 명령문이 될 수 있습니다. 문은 {}로 묶어야 하지만 표현식은 그럴 수 없습니다.

람다 표현식 예


(List<String> list) -> list.isEmpty() // 布尔类型表达式
() -> new Apple(10) // 创建一个新对象
(Apple a) -> { System.out.println(a.getWeight()); } // 使用一个对象的属性
(String s) -> s.length() // 选择或提取一个对象的属性
(int a, int b) -> a * b // 组合两个参数
(Apple a1, Apple a2) -> a1.getWeight().compareTo(a2.getWeight()) // 比较两个对象
로그인 후 복사

동작 매개변수화

보시다시피 람다 표현식은 동작 표현에 중점을 둡니다. 사실, java8 이전에는 이미 매개변수로 동작을 처리하는 유사한 예가 있었습니다.


// java.util.Comparator
public interface Comparator<T> {
 public int compare(T o1, T o2);
}
로그인 후 복사


inventory.sort(new Comparator<Apple>() {
 public int compare(Apple a1, Apple a2){
 return a1.getWeight().compareTo(a2.getWeight());
 }
});
로그인 후 복사

위 예에서는 Comparator 인터페이스가 정의되고 비교 메소드가 정의되었습니다. 목록 유형 인벤토리는 비교기를 매개변수로 사용하는 정렬 방법을 정의합니다. 사용되면 비교 메서드를 구현하고 특정 비교 동작을 지정한 다음 Comparator 개체를 매개 변수로 정렬 메서드에 전달하는 익명 또는 비익명 Comparator 개체가 생성됩니다. 실제 함수는 비교 동작을 정렬 메서드에 매개 변수로 전달하는 것입니다. 이 아이디어와 접근 방식을 "동작 매개 변수화"라고 합니다. 사용된 메서드(예: 정렬 메서드)는 여러 동작에 대응할 수 있습니다. 동작을 변경해야 하는 경우 동작을 나타내는 코드만 수정하면 되며 사용자는 수정할 필요가 없으므로 견고성이 향상됩니다. 코드.

익명 내부 클래스

위의 예처럼 Comparator 형 객체를 변수 정의 없이 직접 신규 생성하여 객체에 대한 참조를 저장하는 것을 익명 내부 클래스를 이용하여 호출합니다. 익명 내부 클래스의 경우 메소드를 재사용할 수 없기 때문에 코드의 중복성을 더 명확하게 볼 수 있습니다. 객체를 사용할 때마다 수동으로 새로 만들어야 하고 비교 메서드의 서명도 작성해야 하기 때문에 실제로 유용한 유일한 것은 비교 메서드의 본문뿐입니다. Java 8에서는 람다 표현식을 사용하여 이러한 코드를 단순화할 수 있습니다. 예를 들어 위의 정렬 메서드 사용은 다음과 같이 단순화될 수 있습니다.


inventory.sort((Apple a1, Apple a2) -> a1.getWeight().compareTo(a2.getWeight() ) );
로그인 후 복사

스레드 정의의 예:


Thread t = new Thread(new Runnable() {
 public void run(){
 System.out.println("Hello world");
 }
});
로그인 후 복사

은 다음과 같이 단순화될 수 있습니다.


Thread t = new Thread(() -> System.out.println("Hello world"));
로그인 후 복사

예 람다 표현식이 더 간결하고 개발자가 읽고 쓸 때 정의된 동작에 더 집중할 수 있도록 한다는 것을 알 수 있습니다. 암호.


요약

이 문서에서는 람다 식의 구문을 소개하고 람다 식의 사용 시나리오와 람다 식 사용의 이점을 소개합니다. 다음 글에서는 람다 표현식을 정의하고 사용하는 방법, 그리고 다른 언어와 비교하여 Java에서 람다 표현식의 특별한 사양에 대해 설명하겠습니다.


요약

위 내용은 Java8의 람다 표현식 구문 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!