Tôi gặp sự cố khi khởi tạo lớp có tham số kiểu. Nó có vẻ là một thiếu sót của suy luận kiểu Java và tôi muốn biết nếu có một cách xung quanh này hoặc một cách tốt hơn để đạt được điều này.Java - vấn đề khởi tạo lớp với các tham số kiểu
public class ParentModel {}
public class ChildModel extends ParentModel {}
public class Service<E extends ParentModel, T extends Collection<E>> {
private Class<T> classOfT;
private Class<E> classOfE;
public Service(Class<E> classOfE, Class<T> classOfT) {
this.classOfE = classOfE;
this.classOfT = classOfT;
}
}
public class BusinessLogic {
public void someLogic() {
Service<ChildModel, ArrayList<ChildModel>> service = new
Service<ChildModel, ArrayList<ChildModel>>(ChildModel.class, ArrayList.class);
}
}
Compile-time error là trong BusinessLogic::someLogic()
:
Các nhà xây dựng Dịch vụ < ChildModel, ArrayList < ChildModel >> (Lớp < ChildModel>, Class < ArrayList>) là undefined
Biên dịch sang Java 7.
Bạn có dự định có trường 'Class' hoặc trường nào thuộc loại' T' và 'E' nào không? –