ProgramingTip

Java로 여러 인터페이스 구현-위임하는 방법이 있습니까?

bestdevel 2020. 11. 18. 09:32
반응형

Java로 여러 인터페이스 구현-위임하는 방법이 있습니까?


아래 예제와 같이 많은 메소드로 여러 인터페이스를 구현하는 기본 클래스를 여러 인터페이스합니다.

방법을 사용할 수 있습니다.

public class MultipleInterfaces implements InterFaceOne, InterFaceTwo {

    private InterFaceOne if1;
    private InterFaceTwo if2;

    public MultipleInterfaces() {
      if1 = new ImplementingClassOne();
      if2 = new ImplementingClassTwo();
    }

    @Override
    public void classOneMethodOne { if1.methodOne(); }
    @Override
    public void classOneMethodTwo { if1.methodTwo(); }
    /** Etc. */


    @Override
    public void classTwoMethodOne { if2.methodOne(); }
    @Override
    public void classTwoMethodTwo { if2.methodTwo(); }
    /** Etc. */

}

말했듯이 방법이 없습니다. 약간 약간 괜찮은 IDE는 델리게이트 메서드를 자동 생성 할 수 있습니다. 예를 들어 Eclipse가 할 수 있습니다. 먼저 템플릿을 설정합니다.

public class MultipleInterfaces implements InterFaceOne, InterFaceTwo {
    private InterFaceOne if1;
    private InterFaceTwo if2;
}

그런 다음 마우스 오른쪽 버튼을 클릭하고 Source> 델리게이트 메소드 생성을 선택 if1하고 if2필드를 모두 선택한 다음 OK를 클릭 합니다.

다음 화면도 참조하십시오.

대체 텍스트


대체 텍스트


대체 텍스트


다중 인터페이스를 구현하는 한 가지 방법이 있습니다.

다른 인터페이스에서 하나의 인터페이스를 확장하거나 미리 정의 된 인터페이스를 확장하는 인터페이스를 만들기 만하면됩니다. 예 :

public interface PlnRow_CallBack extends OnDateSetListener {
    public void Plan_Removed();
    public BaseDB getDB();
}

이제 우리는 아웃 클래스에서 사용할 수있는 다른 인터페이스를 확장하는 인터페이스를 가지고 있습니다. 두 개 이상의 인터페이스를 구현하는 새로운 인터페이스가 사용됩니다.

public class Calculator extends FragmentActivity implements PlnRow_CallBack {

    @Override
    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {

    }

    @Override
    public void Plan_Removed() {

    }

    @Override
    public BaseDB getDB() {

    }
}

도움이 되셨기를 바랍니다.


불행하게도.

우리는 모두 확장 메소드 대한 Java 지원을 간절히 기다리고 있습니다.


예쁜 방법은 없습니다. 방법이있는 방법이있는 방법으로 사용할 수 있습니다. 물론 생성되지 않기 때문에 팩토리를 설치합니다.

참고 URL : https://stackoverflow.com/questions/4546807/implementing-multiple-interfaces-with-java-is-there-a-way-to-delegate

반응형