1. 설명
Consumer<T> : 1개의 Type T 인자를 받고 리턴 값이 없는 함수형 인터페이스이다.
Consumer인 이유는 데이터를 사용만하고 아무것도 반환하지 않기 때문이다.
인터페이스 내부에는 Abstract Method인 accept()와 Default Method인 andThen() 이 존재한다.
2. Accept Method
- accept 메소드는 제네릭 타입의 매개변수 하나만 받아 특정 작업을 수행한다.
- 람다식(Lambda Expression)을 사용하여 Consumer Interface를 구현한다.
public class Test{
public static void main(String[] args){
Consumer<String> consumer = string -> System.out.println(string);
consumer.accept("Consumer Test"); // System.out.println("Consumer Test") 실행
}
}
3. AndThen Method
- andThen 메소드는 하나의 인자에 대해 Consumer를 연쇄적으로 이용하고 싶을때 사용하는 메소드이다.
- Consumer를 인자로받아 Consumer를 반환한다.
public class Test{
public static void main(String[] args){
Consumer<String> consumer1 = string -> System.out.println(string + " consumer1");
Consumer<String> consumer2 = string -> System.out.println(string + " consumer2");
consumer1.andThen(consumer2).accept("Consumer Test");
/* 결과
* Consumer Test consumer1
* Consumer Test consumer2
*/
}
}
---------------------------------------------------------------------------------------------
public class Test{
public static void main(String[] args){
Consumer<String> consumer1 = string -> System.out.println(string + " consumer1");
Consumer<String> consumer2 = string -> System.out.println(string + " consumer2");
Consumer<String> union = consumer1.andThen(consumer2);
union.accept("Consumer Test");
/* 결과
* Consumer Test consumer1
* Consumer Test consumer2
*/
}
}
3. 코드
JsonArray gson;
public void eachObject(Consumer<JObject> consumer) {
gson.forEach(each -> {
consumer.accept(new JObject((JsonObject) each));
});
}
------------------------------------------------------------
Map<String, Table> tables = new HashMap<>();
private SchemaManager() {
readFiles().eachObject(each -> {
Table table = new Table(each);
tables.put(table.getName(), table);
});
}
반응형
'Java' 카테고리의 다른 글
Excel Download With POI (0) | 2023.03.21 |
---|---|
Atomic (0) | 2023.02.27 |
Try-With-Resources (0) | 2023.02.09 |
Static & Singleton Pattern (0) | 2023.02.08 |
Access Modifier ( 접근 지정자 ) (0) | 2023.02.08 |