[英]Java generics compiler error assigning to JavaFX collection
Consider the following code: 考虑以下代码:
public interface ListDisplayObj {
public String getListDisplayString();
}
public class BusinessObject implements ListDisplayObj {
...
public String getListDisplayString() {
return "Example String";
}
}
public class DBUtilityClass {
public ObservableList<BusinessObject> getMyBusinessObjects() {
ObservableList<BusinessObject> toReturn =
FXCollections.observableArrayList();
// add some values to list
return toReturn;
}
}
public class JavaFXGuiController implements Initializable {
@FXML private ListView<ListDisplayObj> listItems;
@Override
public void initialize(URL url, ResourceBundle rb)
{
ObservableList<ListDisplayObj> objsForList =
DBUtilityClass.getMyBusinessObjects();
listItems.setItems(objsForList);
...
}
}
The assignment in initialize() is generating an "incompatible types" compile error between the return type of the getMyBusinessObjects()
function and the objsForList
type. 在初始化分配()被生成一个“不兼容的类型的”的返回类型之间编译错误getMyBusinessObjects()
函数和objsForList
类型。
What am I doing wrong? 我究竟做错了什么?
setItems requires a list of the exact type (ObservableList instead of ObservableList), whereas your list is of an implementation of the interface. setItems需要一个确切类型的列表(ObservableList而不是ObservableList),而您的列表是接口的实现。 Define listItems as a ListView. 将listItems定义为ListView。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.