Java에서 소비자 인터페이스를 사용하는 방법?

Java Eseo Sobija Inteopeiseuleul Sayonghaneun Bangbeob



자바에서는 ' 소비자 ” 인터페이스는 단일 입력을 수신하고 결과를 반환하지 않고 그에 대한 작업을 수행하는 작업을 나타냅니다. 또한 람다 식과 같은 함수형 프로그래밍에서 활용할 수 있는 사용자 지정 작업을 정의하는 유연한 방법을 제공합니다. 이 블로그는 Java로 소비자 인터페이스를 구현하는 방법을 보여줍니다.

Java에서 소비자 인터페이스를 사용하는 방법?

소비자 ” 인터페이스는 프로그램의 다른 위치에서 전달되고 실행될 수 있는 캡슐화 또는 동작을 제공합니다. 코드를 복제하지 않고 다른 입력에 적용할 수 있는 재사용 가능한 동작을 촉진합니다. Consumer 인터페이스는 “ 그런 다음() ' 그리고 ' 수용하다() '.







코덱 예제와 함께 두 기능을 모두 이해하려면 아래 예제를 방문하십시오.



예제 1: 'andThen()' 메서드 사용



개발자는 여러 ' 소비자 ” 작업을 모두 사용하여 “ 그런 다음() ' 방법. 새로운 ' 소비자 '는 현재 '의 작업을 수행합니다. 소비자 ' 사례. 그 후, 다음/이후 '의 작업을 수행합니다. 소비자 ' 사례. 프로세스에 널리 사용되는 기본 방법입니다. 구성 '.





'에 대한 구문 그런 다음() ” 메서드는 아래에 삽입됩니다.

그런 다음 ( 소비자 < ? 슈퍼티 > ~ 후에 )

그런 다음() ” 방법은 현재 소비자를 결합합니다 “ 감독자 ' 다른 소비자와 ' ~ 후에 '. 그리고 현재 컨슈머의 연산을 먼저 실행하고 제공된 컨슈머의 연산을 수행합니다.

더 나은 이해를 위해 프로그램을 살펴보겠습니다.

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.function.Consumer;

공개 클래스 루트 {
공공 정적 무효 메인 ( 문자열 인수 [ ] )
{
// 메인 메소드 생성
소비자 < 목록 < 정수 > > 곱하기 = dataEle - >
{
~을 위한 ( 정수 j = 0 ; 제이 < dataEle.size ( ) ; j++ ) {
dataEle.set ( 제이, 5 * dataEle.get ( 제이 ) ) ;
}
} ;
// 정수 목록을 표시하는 소비자
소비자 < 목록 < 정수 > >
인쇄 = dataEle - > dataEle.stream ( ) .각각 ( k- > System.out.print ( 케이 + ' ' ) ) ;

목록 < 정수 > dataEle = 새로운 ArrayList < 정수 > ( ) ;
dataEle.add ( 4 ) ;
dataEle.add ( 7 ) ;
dataEle.add ( 12 ) ;
dataEle.add ( 16 ) ;
곱하기.그리고 ( 인쇄물 ) .수용하다 ( dataEle ) ;
}
}

위 코드에 대한 설명:

  • 먼저 “ 소비자 ”, “ LinkedList ” 및 관련 유틸리티를 Java 파일로 가져옵니다. 그 후 '라는 이름의 메인 클래스 뿌리 '가 생성됩니다.
  • 다음으로 '라는 List 유형의 'Consumer' 인터페이스를 만듭니다. 곱하다 ”와 같게 설정합니다. 배열목록 ” 아래에 생성됩니다.
  • '를 활용합니다. ~을 위한 ” 길이까지 반복되는 루프 배열목록 ' 명명 된 ' dataEle ', '의 각 데이터 요소를 곱합니다. dataEle ' 와 함께 ' 5 '.
  • 그 후, 잠시 ' 소비자 ” 스트림에서 곱셈 프로세스 후에 검색된 각 요소를 콘솔에 인쇄하는 인터페이스가 생성됩니다.
  • 이제 '에 더미 데이터 요소를 생성하고 추가하십시오. dataEle ” ArrayList.
  • 결국 “ 그런 다음() ” 메서드는 “ 수용하다() '를 받아들이는 방법 dataEle ” ArrayList 및 “의 결과 반환 곱하다 ”순서대로.

실행 단계 종료 후:

스냅샷은 '를 활용하여 곱셈 작업이 완료되었음을 보여줍니다. 그런 다음() ”의 방법 소비자 ' 상호 작용.

예제 2: 'accept()' 메서드 사용

수용하다() ” 방법은 “의 기능적 방법입니다. 소비자 ' 상호 작용. ' 유형의 단일 인수를 허용합니다. ” 그리고 지정된/필요한 작업을 수행합니다. 의 가치 ' 없는 '를 허용하지 않으므로 '를 제공해서는 안 됩니다. 없는 ” 값을 지정하고 예외를 생성합니다.

구문은 다음과 같습니다.

무효 수락 ( < 강한 > 강한 > )

위 구문에서 ' ”는 특정 작업이 실행되는 단일 인수입니다.

더 나은 이해를 위해 아래 코드 블록을 방문하십시오.

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.function.Consumer;

// 유틸리티 가져오기 ~에 자바 파일
공개 클래스 루트 {
공공 정적 무효 메인 ( 문자열 인수 [ ] ) // 메인 메소드 생성
{
소비자 < 정수 > 디스플레이 = 케이 - > System.out.println ( 케이 ) ;
disp.accept ( 255 ) ;
소비자 < 목록 < 정수 > > 곱하기 = dataEle - >
{
~을 위한 ( 정수 k = 0 ; 케이 < dataEle.size ( ) ; k++ )
dataEle.set ( 케이, 5 * dataEle.get ( 케이 ) ) ;
} ;

소비자 < 목록 < 정수 > >
인쇄 = dataEle - > dataEle.stream ( ) .각각 ( 제이 - > System.out.print ( j + '
'
) ) ;
목록 < 정수 > dataEle = 새로운 ArrayList < 정수 > ( ) ;
dataEle.add ( 4 ) ;
dataEle.add ( 7 ) ;
dataEle.add ( 12 ) ;
dataEle.add ( 16 ) ;
// 수락을 사용하여 수정 구현 ( )
곱하기.수락 ( dataEle ) ;
// accept를 사용하여 dispList 구현 ( )
지문.수락 ( dataEle ) ;
}
}

위 코드에 대한 설명:

  • 먼저 “ 소비자 ' 인터페이스 이름 ' 디스플레이 아무런 조작을 하지 않고 제공된 파라미터를 콘솔에 표시하는 ”이 생성됩니다.
  • 이제 “ 수용하다() ' 메서드는 '에 의해 호출됩니다. 디스플레이 ” 소비자, 그리고 “의 가치 255 ”가 이 메서드에 전달됩니다.
  • 다음으로 또 다른 ' 소비자 ”를 활용하는 인터페이스가 생성됩니다. ~을 위한 ”라는 이름의 ArrayList의 각 상주 요소에 곱셈을 적용하는 루프 dataEle '.
  • 그런 다음 ' 소비자 ” 인터페이스는 “ dataEle ” 요소는 스트림에서 오는 곱셈을 적용한 후 결과입니다.
  • 다음으로 ArrayList를 초기화합니다. dataEle ”를 더미 데이터 요소와 함께 사용하고 “ 수용하다() ” 방법을 “ 곱하다 ' 상호 작용.
  • 결국 ' 수용하다() ' 방법을 사용하여 ' 인쇄물 ” 콘솔 로그에 곱셈을 적용한 후 결과를 표시하는 인터페이스.

실행 종료 후:

위의 스냅샷은 여러 소비자 인터페이스가 ' 수용하다() ' 방법.

예제 3: After 함수에 대한 예외 처리

예외는 ' ~ 후에 '의 기능 그런 다음() ” 메서드에는 “ 수용하다() ' 방법. 이는 아래와 같이 소비자 인터페이스 메서드를 사용하여 인터페이스에서 처리할 데이터를 보유하는 인터페이스를 만듭니다.

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.function.Consumer;

공개 클래스 루트 {
공공 정적 무효 메인 ( 문자열 인수 [ ] )
{
소비자 < 목록 < 정수 > > 곱하다 = 데이터일 - >
{
~을 위한 ( 정수 j = 0 ; 제이 < = dataEle.size ( ) ; j++ )
dataEle.set ( 제이, 5 * dataEle.get ( 제이 ) ) ;
} ;
// 정수 목록을 표시하는 소비자
소비자 < 목록 < 정수 > >
인쇄 = 데이터일 - > dataEle.stream ( ) .각각 ( 나 - > System.out.print ( 내가 + ' ' ) ) ;
목록 < 정수 > dataEle = 새로운 ArrayList < 정수 > ( ) ;
dataEle.add ( 4 ) ;
dataEle.add ( 7 ) ;
dataEle.add ( 12 ) ;
dataEle.add ( 16 ) ;
노력하다 {
print.andThen ( 곱하다 ) .수용하다 ( dataEle ) ;
}
잡다 ( 예외 e ) {
System.out.println ( '예외: ' + 그리고 ) ;
}
}
}

위 코드 블록에 대한 설명:

  • 먼저 “ 소비자 ” 단순히 여러 “ 5 ” 제공된 ArrayList에 있는 데이터 요소가 있는 정수.
  • 다음으로 두 번째 ' 소비자 ” 인터페이스는 스트림에서 수신한 ArrayList의 각 데이터 요소를 표시하기 위해 생성됩니다.
  • 그런 다음 ArrayList가 생성되고 더미 정수 유형 값으로 초기화됩니다.
  • 그런 다음 ' 노력하다 ” 블록은 “ 그런 다음() ' 메서드는 '에 의해 호출됩니다. 인쇄 ' 상호 작용.
  • IndexOutOfBoundsException ” 때문에 “ ~을 위한 ” 루프 반복 제한이 초과되었습니다. 이는 “ 잡다 ' 차단하다.

실행 단계 종료 후:

스냅샷은 IndexOutOfBoundsException이 컴파일러에 의해 생성되었음을 보여줍니다.

결론

소비자 ” 인터페이스는 재사용 가능한 동작을 정의하고 결과를 반환하지 않고 입력 데이터에 대한 작업을 수행하는 방법을 제공합니다. '로 구성되어 있습니다. 수용하다() ' 그리고 ' 그런 다음() 방법. 사용자가 컬렉션 또는 스트림의 각 요소에 대해 작업을 수행해야 하는 데이터 처리 작업에 자주 활용됩니다. 이것이 Java에서 소비자 인터페이스의 사용 및 구현에 관한 전부입니다.