30분 입문 Java8의 lambda 표현식 학습
Google은 올해 Android N 개발자 미리보기를 발표하고 자바 8을 지원하기 시작했다고 발표했다.우리는 마침내 안드로이드 개발에서 자바8의 일부 언어 특성을 사용할 수 있게 되었다.현재 지원:
개발 환경 설정
먼저 JDK1.8을 다운로드하여 설치해야 합니다.
Android 개발에서 lambda 표현식을 사용하려면 Android Studio에서 Java8 개발 환경을 설정해야 합니다.
앱의 Gradle 파일을 구성하려면:
android {
  defaultConfig {
    ...
    // jack 
    jackOptions {
      enabled true
    }
  }
  ...
  // Java1.8
  compileOptions {
    targetCompatibility 1.8
    sourceCompatibility 1.8
  }
}첫 번째 lambda 표현식
아래의 코드를 보면 모두가 매우 익숙할 것이라고 믿는다.버튼에 감청 이벤트를 설정하는 거잖아.
 button.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        Log.d("TAG"," , ");
      }
    });View.OnClickListener  인터페이스를 실현한 익명 클래스의 대상을 만들었다.익명 내부 클래스는  onClick  방법을 실현했다.이 익명 클래스의 대상을 통해 사용자가 단추를 눌렀을 때 로그를 출력합니다.그런데 다들 눈치채셨나요?위의 코드가 정말 유용한 것은 바로 Log이다.d("TAG", "버튼 클릭, 익명 내부 클래스");이 줄의 코드는 익명 내부 클래스를 사용하는 단점을 반영한다.
button.setOnClickListener(view-> Log.d(TAG," ,lambda ")); view-> Log.d(TAG," ,lambda ")); 가 바로 우리가 쓴 첫 번째 람다 표현식이다.lambda 표현식은 보통
 (argument)->(body)  같은 형식으로 쓰인다.
// 
(arg1,arg2...) -> {body}
// 
(Type1 arg1,Type2 arg2...)->{body}
lambda 표현식의 구조
// 
 ()-> System.out.println("no argument");
 
// 
 x->x+1
// 
 (x,y)->x+y
// 
 View.OnClickListener oneArgument = view->Log.d(TAG,"one argument");
 // 
 View.OnClickListener oneArgument = (View view)->Log.d(TAG,"one argument");
// 
// void
View.OnClickListener multiLine = (View view)->{
   Log.d(TAG,"multi statements");
   Log.d(TAG,"second line");
}
// int
(int x)->x+1
우리는 모두 자바가 강한 유형의 언어라는 것을 안다.모든 방법의 매개 변수는 유형이 있습니다. 그렇다면lambda 표현식은 어떤 유형입니까?
 View.OnClickListener listener = new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        //...
      }
    };
    
 button.setOnClickListener(listener);lambda 표현식에서 이전과 같은 형식을 사용합니다.우리는 함수식 인터페이스(functional interface)라고 부른다
이전 button의 클릭 응답 이벤트에 사용된 View와 같습니다.OnClickListener는 함수식 인터페이스입니다.
public class View implements Drawable.Callback, KeyEvent.Callback,
    AccessibilityEventSource {
    ...
 public interface OnClickListener {
    void onClick(View v);
  }
  ...
  }함수식 인터페이스는 추상적인 방법만 있는 인터페이스다.lambda 표현식을 나타내는 형식으로 사용됩니다.
Java8 API에 여러 함수 인터페이스가 추가되었습니다.
인터페이스 이름
매개 변수
반환값
용도
Predicate
T
boolean
단언
Consumer
T
void
소비하다
Function
T
R
함수
Supplier
None
T
공장 방법
UnaryOperator
T
T
논리적 비
BinaryOperator
(T,T)
T
이원 조작
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Liquibase】DB 작성·테이블 정의 변경신규 스타터 프로젝트 작성 Liquibase와 MySQL 선택 application.properties에 DB 정보 넣기 MySQL에서 "testdatabase"라는 데이터베이스 만들기 빌드 종속성 추가 build....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.