Java에서 매개 변수로 메소드 전달

Mohammad Irfan 2023년10월12일
  1. Java에서lambda함수를 사용하여 메소드를 매개 변수로 전달
  2. Java의 사용자 지정 메서드에 매개 변수로 메서드 전달
  3. Java의 메서드 참조를 사용하여 메서드를 매개 변수로 전달
Java에서 매개 변수로 메소드 전달

이 튜토리얼에서는 Java에서 매개 변수로 메소드 전달을 소개합니다. 이 주제를 더 잘 이해할 수 있도록 예제 코드를 포함했습니다.

Java에서 처음부터 매개 변수로 전달하는 메소드의 개념은 없습니다. 그러나 Java 8에서 람다 함수와 메서드 참조를 사용하여이를 달성 할 수 있습니다. 따라서이 기사에서는 메서드를 매개 변수로 전달하기 위해이 두 가지 주제에 더 중점을 둘 것입니다.

람다 함수 또는 람다 식은 Java 8에서 도입 된 개념입니다. 함수 스타일 접근 방식을 따라 함수를 작성하는 간결한 방법입니다. Java 및 Java 8은 객체 지향 언어로 간주되기 때문에 코드 작성을위한 기능적 접근 방식을 지원합니다.

Java에서lambda함수를 사용하여 메소드를 매개 변수로 전달

이것은ArrayList요소를 반복하는 데 사용하는 람다의 간단한 예입니다. Iterable인터페이스의forEach()메소드에 람다 함수를 전달하고 있습니다. ArrayList클래스는Iterable인터페이스를 구현합니다.

그래서 이것은 우리가 Java에서 매개 변수로 메소드 (lambda 함수)를 전달하는 방법입니다.

public class SimpleTesting {
  public static void main(String[] args) {
    ArrayList<Integer> evens = new ArrayList<Integer>();
    evens.add(10);
    evens.add(20);
    evens.add(30);
    evens.add(40);
    evens.forEach((n) -> { System.out.println(n); }); // passing lambda as a parameter
  }
}

출력:

10
20
30
40

Java의 사용자 지정 메서드에 매개 변수로 메서드 전달

내장 메소드forEach()와는 별도로 매개 변수로 사용자 정의 메소드에 전달할 수 있습니다. 이 예에서는doSomething()메소드가있는Doable인터페이스를 생성했습니다. SimpleTesting클래스에는doSomething()메소드를 호출하는show()메소드가 있습니다. main() 메서드 내에서 람다 함수를 만들고show()메서드에 전달했습니다.

이것은 메서드 (람다 함수)를 매개 변수로 메서드에 전달하는 줄입니다.

show("Hello", doa); // passing lambda function as parameter
interface Doable {
  String doSomething(String str);
}
public class SimpleTesting {
  public static void main(String[] args) {
    Doable doa = (str) -> str + " Rohan";
    show("Hello", doa); // passing lambda function as parameter
  }

  public static void show(String msg, Doable doa) {
    String greeting = doa.doSomething(msg);
    System.out.println(greeting);
  }
}

출력:

Hello Rohan

Java의 메서드 참조를 사용하여 메서드를 매개 변수로 전달

이것은 메서드를 매개 변수로 메서드에 전달하는 데 사용할 수있는 또 다른 솔루션입니다. 또한 Java 8 버전에서 람다 기능과 함께 도입되었습니다. 이 예제에서는 런타임 중에 실행되는Thread()생성자에 매개 변수로show()메소드를 전달하기 위해 메소드 참조 개념을 사용했습니다. 여기에서 코드 예제의 출력을 참조하십시오.

public class SimpleTesting {
  public static void main(String[] args) {
    // Passing method reference as a parameter
    Thread thread = new Thread(SimpleTesting::show);
    thread.start();
  }
  public static void show() {
    System.out.println("My Thread");
  }
}

출력:

My Thread

관련 문장 - Java Method