我有这个问题,我似乎无法在互联网上找到解决方案。我在这里发布了一个类似的链接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.
}
}
我正在使用ScheduledThreadPoolExecutor类。在该类下,有一个名为getQueue的方法。但是getQueue返回Runnable接口的BlockingQueue。 有没有办法从Runnable接口的阻塞队列中取回一个Example类?
答案 0 :(得分:0)
您是否使用ScheduledThreadPoolExecutor的计划方法将新任务插入队列? 这些任务是否属于Example类吗?
如果是这样,那么当获得新的“Runnable”时,您可以通过以下方式将其转换为示例:
Runnable r = getRunnableFromQueue();
Example e = (Example) r;
根据程序的流程,最好在投射前验证类型是否匹配(例如使用instanceof)。
希望它有所帮助。