Java Consumer 살펴보기 C# 개발자가

몬난아·2021년 8월 14일
0

.NET C#개발자가 살펴본 Java Consumer

Consumer객체와 사용법을 한번 알아보았다.

자바 Interface이며 FunctionalInterface이다. 고로 1개의 abstract 함수를 가질수 있는 객체이며 기본적으로 연속성을 위해 andThen을 default로 지원하고 있는것으로 판단단된다.

기본적인 사용방법을 살펴 보았다.

        Consumer<Integer> consumer = (t) -> {
            System.out.println("printing  : " + t);
        };

        consumer.accept(5);

결과 :

간단하게 출력이을 확인할수 있다. 결국 위 예제는 Int예제이니 C# 의 Action과 동일한 역활을 하는 인터페이스며 자바에서는 delegate 와 같은 함수 포인터가 없으니 FunctionInterface로 구현을 하는것 같다.

C#으로 표현하자면 다음과 같을것같다.

    Action<int> action = (t) => Console.WriteLine("pringting :" + t);
    action(5);

기본적으로 정의된 Action의 16개 파라미터의 대리자를 활용하여 그중 1개의 인자를 받는 action을 만들어 다음과 같은 코드를 작성했다.

다음예제를 하나더보자.
JAVA

Consumer<Integer> consumer = (t) -> {
    System.out.println("printing  : " + t);
};
//consumer.accept(5);
List<Integer> list1 = Arrays.asList(1,2,3,4,5);
list1.stream().forEach(consumer);

결과

C#

Action<int> action = (t) => Console.WriteLine("pringting :" + t);

//action(5);
List<int> list1 = new List<int>{ 1,2,3,4,5 };
list1.ForEach(action);

결과는 역시 동일하니 패스 하고 기본적인 문법의 이질감은 크게 없는것을 확인 된다.

기본적으로 문법의 sugar나 delegate를 활용하는 방법은 역시 c#이 월등히 편한건 어쩔수 없다.

일단 기억하자 Consumer == Action과 같은 역활을 한다.

C# .NET만 하던 개발자가 JAVA를 보려니 일반적인 이해방법보다 이런식으로 이해하는것이
빠른 이해에 도움이 되는것 같다.

profile
잘~ 사는게 목표인사람

0개의 댓글