4
我有接受下列參數視圖模板:播放框架模板參數 - 傳遞一個子類
@(groups: List[models.groups.AcademicGroup]
我有我的學術團體類:
@MappedSuperclass
public abstract class AcademicGroup extends Model
和這樣的一個子類:
@Entity
public class SchoolClass extends AcademicGroup
從另一個模板中調用我的視圖模板已經工作:
@views.html.panels.groups(schoolClasses.asInstanceOf[java.util.List[models.groups.AcademicGroup]])
什麼不工作,直接通過控制器傳遞sublass:
public static Result schoolClasses() {
List<SchoolClass> schoolClasses = SchoolClass.find.all();
return ok(groups.render(schoolClasses));
}
通過這種方法,我得到錯誤信息:
The method render(List<AcademicGroup>) in the type groups is not applicable for the arguments (List<SchoolClass>)
類型轉換列表中沒有按」工作。有什麼我失蹤或者是有辦法接受隱含的子類爲模板參數一樣可以爲Java泛型做到這一點:
List<? extends AcademicGroup>
如果我沒有記錯,在斯卡拉同樣的事情(因此,在模板)將是'List [+ models.groups.AcademicGroup]'(注意加號)。 – Carsten
嘗試傳遞一個'List [_ <:AcademicGroup]',它等於'List <?在Java中擴展AcademicGroup>'' – serejja