2012-05-20 2 views
-1

이 문제가 있으며 인터넷에서 해결책을 찾지 못하는 것 같습니다. 여기 유사한 링크, http://www.coderanch.com/t/581517/java/java/cast-superclass-subclass#2645691하위 클래스로 수퍼 클래스를 캐스팅하는 방법

class Example implements Runnable { 
     String ID; 

     public Example (String ID) { 
      this.ID = ID; 
     } 
     public void run() { 
    // Code to do something. 
    } 
} 

나는 스케줄 할 클래스를 사용하고 게시했다. 이 클래스에서는 getQueue라는 메서드가 있습니다. 다만, getQueue는 Runnable 인터페이스의 BlockingQueue를 돌려줍니다. Runnable 인터페이스의 Blocking 큐에서 Example 클래스를 되 찾을 수 있습니까?

+0

@ jmort253 감사합니다. 내가 캐스팅을 할 수 있다는 것을 잊었다. – ktlim

답변

0

ScheduledThreadPoolExecutor의 일정 방법을 사용하여 새 작업을 대기열에 삽입 하시겠습니까? Example 클래스의 이러한 작업 영역은 있습니까?

그렇다면, 새로운 "Runnable를"당신은에 의해 예에 전송할 수 있습니다 획득 한 후 때 그것을 확인하는 것이 좋습니다 수 있습니다 프로그램의 흐름에 따라

Runnable r = getRunnableFromQueue(); 
Example e = (Example) r; 

을 그 종류 경기 전에 캐스팅 (예 : instanceof 사용).

희망이 있습니다.

+0

예 새 작업은 Example 클래스의 인스턴스입니다. 나는 코드를 시도 할 것이다. – ktlim

관련 문제