간단 한 예 를 통 해 자바 리 셋 메커니즘 을 설명 하 다.

이 글 은 주로 간단 한 예 를 통 해 자바 리 셋 체 제 를 설명 하 였 으 며,글 에서 예제 코드 를 통 해 매우 상세 하 게 소개 하 였 으 며,여러분 의 학습 이나 업무 에 대해 어느 정도 참고 학습 가 치 를 가지 고 있 으 며,필요 한 친 구 는 참고 할 수 있 습 니 다.
우선 딴말 을 좀 해라.왜 이 글 을 써 야 합 니까?J.U.C 가방 의 Future Task 소스 코드 를 볼 때 done()방법 이 있 기 때 문 입 니 다.이것 은 추상 적 인 방법 입 니 다.사용자 가 이 를 실현 한 후에 Future Task 는 이 방법 을 실행 한 후에 호출 합 니 다.이것 이 바로 반전 메커니즘 이다.반전 의 사상 은 바로 다음 과 같다.
클래스 A 호출 클래스 B 의 b 방법
4.567917.클래스 B 의 b 방법 이 실행 되 었 습 니 다.주동 적 으로 클래스 A 를 호출 하 는 callback()방법사상 이 너무 추상 적 이어서 저 는 간단 한 실례(간단 하지만 문 제 를 설명 할 수 있 음)를 들 고 자바 가 리 셋 을 실현 하 는 절 차 를 정리 하 겠 습 니 다.
실례 는 이전 해석 이 리 셋 메커니즘 이 무엇 인지 아 는 대답 에 기초 하고 있다.
설명:한 고객 이 한 호텔 에 입 주 했 고 호텔 은 모 닝 콜 서 비 스 를 제공 했다.고객 은 다음날 아침 중요 한 일이 있어 모 닝 콜 서 비 스 를 사용 했다.호텔 직원 들 로 하여 금 다음날 아침 7 시 에 고객 을 깨 우 게 하 다.
이 예 에서 고객 은 A 류,호텔 은 B 류,고객 예약 모 닝 콜 서 비 스 는 A 가 B 의 b 방법 을 호출 한 것 과 같 고 호텔 모 닝 콜 은 B 가 A 의 콜 백 방법(모 닝 콜)을 호출 한 것 과 같다.
다음은 코드 를 드 립 니 다.
1.우선 리 셋 인터페이스:

package callback;
//    
public interface CallBack {
  public void beWakedUp();
}
2.다음은 고객 류
고객 류 리 셋 인터페이스 실현

package callback;

public class Customer implements CallBack {
  //            ,    
  private Hotel hotel;

  public Customer(Hotel hotel) {
    this.hotel = hotel;
  }

  @Override
  public void beWakedUp() {
    System.out.println("    ");
  }

  //              
  public void bookWakeService() {
    hotel.wakeService(this);
  }
  //   get set
}
3.호텔 류

package callback;

public class Hotel {

  public void wakeService(CallBack callBack) {
    System.out.println("         ");
    try {
      //          
      Thread.sleep(3000);
      System.out.println("       ");
      callBack.beWakedUp();
    } catch (InterruptedException e) {

      e.printStackTrace();
    }
  }
}
4.테스트 주요 클래스

package callback;

public class Main {
  
  public static void main(String[] args) {
    Hotel hotel = new Hotel();
    Customer customer = new Customer(hotel);
    customer.bookWakeService();
  }
}
출력 결 과 는:

당신 은 리 턴 메커니즘 에 대해 더 이해 하고 있 습 니까?
마지막 으로 자바 에서 리 셋 메커니즘 을 실현 하 는 대체적인 절 차 를 정리 합 시다.
정의 리 셋 인터페이스 CallBack클래스 A 는 리 셋 인터페이스 CallBack 을 실현 하 는 동시에 클래스 B 를 가 진 대상 b클래스 B 중 방법 method(CallBack cb)
  • A 에 B 가 있 는 대상 이 있 기 때문에 A 는 B 의 method 방법 을 호출 하고 자신 을 매개 변수 로 method 에 전송 할 수 있다(A 가 CallBack 인 터 페 이 스 를 실현 하기 때문에 전송 할 수 있다)
  • 4.567917.method 방법 이 실 행 된 후에 리 셋 방법 을 호출 합 니 다이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기