Java의 메소드 체이닝

Sheeraz Gul 2023년10월12일
Java의 메소드 체이닝

이 자습서는 Java에서 메서드 체인을 수행하는 방법을 보여줍니다.

Java의 메소드 체이닝

메서드 체이닝은 점 .을 사용하여 여러 메서드를 동시에 호출합니다. 연산자. 메소드 체이닝은 하나의 명령문에서 여러 메소드를 호출하는 반면 메소드 체인은 하나의 명령문에서 호출됩니다.

메서드 체이닝은 체인의 각 메서드가 객체를 반환하는 객체 지향 프로그램의 개념입니다. 메서드 체인은 하나의 개체에서 여러 메서드를 호출하는 것으로 정의할 수도 있습니다.

메서드 체이닝의 구문은 다음과 같습니다.

DemoObject.method1().method2().method3();

구문에서 볼 수 있듯이 DemoObject에서 세 가지 메서드가 호출됩니다. 이렇게 메서드를 하나씩 호출하는 것을 메서드 체이닝(Method Chaining)의 개념이라고 합니다.

메소드 체이닝은 Java에서 매개변수 관용구라고도 합니다. 때로는 방법의 수가 증가하면 열차 사고라고 부를 수 있습니다.

Java에서 메서드 체이닝의 예를 살펴보겠습니다.

package delftstack;
class Demo {
  private int DemoInt;
  private float DemoFloat;

  Demo() {
    System.out.println("This is the consutructor");
  }

  int SetInteger(int DemoInt) {
    this.DemoInt = DemoInt;
    return this.DemoInt;
  }

  float SetFloat(float DemoFloat) {
    this.DemoFloat = DemoFloat;
    return this.DemoFloat;
  }

  void DisplayData() {
    System.out.println("Display Numbers=" + DemoInt + " " + DemoFloat);
  }
}

public class Example {
  public static void main(String[] args) {
    new Demo().SetInteger(34).DisplayData();
  }
}

위의 코드는 Demo 클래스의 객체에 메서드 체인을 적용했습니다. 그러나 DisplayData 메서드는 SetInteger가 int 값을 반환하는 개체를 반환하기 때문에 오류가 발생합니다.

메서드 체인 개념은 그런 식으로 작동하지 않습니다.

출력을 참조하십시오.

public class Example {
       ^
Demo.java:33: error: int cannot be dereferenced
new Demo().SetInteger(34).DisplayData();
^
2 errors

이 문제를 해결하려면 메서드를 Demo 클래스 유형으로 정의하고 메서드에서 this 개체만 반환해야 합니다.

예를 참조하십시오.

package delftstack;

class Demo {
  private int DemoInteger;
  private float DemoFloat;

  Demo() {
    System.out.println("This is the consutructor");
  }

  public Demo SetInteger(int DemoInteger) {
    this.DemoInteger = DemoInteger;
    return this;
  }

  public Demo SetFloat(float DemoFloat) {
    this.DemoFloat = DemoFloat;
    return this;
  }

  void DisplayData() {
    System.out.println("Display Numbers=" + DemoInteger + " " + DemoFloat);
  }
}

class Example {
  public static void main(String[] args) {
    new Demo().SetInteger(43).SetFloat(23).DisplayData();
  }
}

이제 코드가 제대로 작동합니다. 출력을 참조하십시오.

This is the consutructor
Display Numbers=43 23.0

다음은 Java에서 메서드 체인 작업을 할 때 고려해야 할 몇 가지 중요한 사항입니다.

  1. 생성자가 호출될 때마다 생성자가 반환 값을 보유하지 않도록 해야 합니다.
  2. 생성자는 항상 개체 참조를 반환하므로 이 개체 참조를 사용하여 다른 메서드를 호출할 수 있습니다.
  3. 메소드 체인을 적용하는 동안 점 . 연산자를 사용하려면 체인의 각 메서드가 개체 참조를 반환하도록 해야 합니다.

예를 들어 첫 번째 예에서 SetInteger 메서드는 int를 반환하고 DisplayData 메서드는 개체 참조를 반환하므로 오류를 반환합니다. 마찬가지로 두 번째 예에서 모든 메서드는 개체 참조를 반환하므로 올바르게 작동합니다.

작가: Sheeraz Gul
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

관련 문장 - Java Method