時,我有以下代碼:ClassCastException異常錯誤鑄造回原班
public void doJob() {
MyObj s;
for (Object o : MyObj.all().fetch()) {
s = (MyObj) o; // ClassCastException here
if (!s.fileExists()) {
//Do some stuff
}
}
}
這是引發此異常:
play.exceptions.JavaExecutionException: models.MyObj cannot be cast to models.MyObj
at play.jobs.Job.call(Job.java:155)
at Invocation.Job(Play!)
Caused by: java.lang.ClassCastException: models.MyObj cannot be cast to models.MyObj
at jobs.OrphanSurveys.doJob(OrphanSurveys.java:18)
at play.jobs.Job.doJobWithResult(Job.java:50)
at play.jobs.Job.call(Job.java:146)
... 1 more
(此方法的播放作業類中運行,如果該事項)
MyObj.all().fetch()
返回某種包含數據庫中所有MyObj
對象的Iterable。 MyObj
從Play繼承此方法!框架的模型類,如果重要的話。這就是爲什麼它返回的列表是Object
而不是MyObj
,我無法改變它的工作原理。
那麼,有什麼理由不能回到MyObj
?我可以看到如何從Object
回傳一些奇怪的東西,但Java似乎知道對象的類是什麼。
謝謝!
打印'o.getClass()。getName()'時列出了什麼類名? – rsp