Java에서 매개 변수로 메소드 전달
-
Java에서
lambda
함수를 사용하여 메소드를 매개 변수로 전달 - 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