Java ReadOnlyLongWrapper无法转换为ObservalEvalue<;第1章>;其中CAP#1是一个新类型变量
我正在创建JavaFX应用程序。我创建了一个用户可以在TableView中设置列的界面。这对我在PC机上的工作很好。我今天试着用android的javafxports编译它。关于编译错误Java ReadOnlyLongWrapper无法转换为ObservalEvalue<;第1章>;其中CAP#1是一个新类型变量,java,android,javafx,Java,Android,Javafx,我正在创建JavaFX应用程序。我创建了一个用户可以在TableView中设置列的界面。这对我在PC机上的工作很好。我今天试着用android的javafxports编译它。关于编译错误 ReadOnlyLongWrapper cannot be converted to ObservableValue<CAP#1> where CAP#1 is a fresh type-variable 我的覆盖接口的完整代码 @Override public <T> List
ReadOnlyLongWrapper cannot be converted to ObservableValue<CAP#1> where CAP#1 is a fresh type-variable
我的覆盖接口的完整代码
@Override
public <T> List<TableColumn<T, ?>> setColums() {
List<TableColumn<T, ?>> columns = new ArrayList<>();
TableColumn<T, ?> id = new TableColumn<>();
id.setText("id");
id.setEditable(true);
id.setSortable(true);
id.setResizable(true);
id.setCellValueFactory(e -> new ReadOnlyLongWrapper(((ProductPS) e.getValue()).getId()));
TableColumn<T, ?> name = new TableColumn<>();
name.setText("name");
name.setEditable(true);
name.setSortable(true);
name.setResizable(true);
name.setCellValueFactory(e -> new ReadOnlyStringWrapper(((ProductPS) e.getValue()).getLang().get(0).getName()));
columns.add(id);
columns.add(name);
return columns;
}
@覆盖
公共列表setcolumns(){
列表列=新的ArrayList();
TableColumn id=新的TableColumn();
id.setText(“id”);
id.setEditable(true);
id.setSortable(真);
id.setresizeable(true);
id.setCellValueFactory(e->new ReadOnlyLongWrapper(((ProductPS)e.getValue()).getId());
TableColumn name=新的TableColumn();
name.setText(“名称”);
name.setEditable(true);
name.setSortable(true);
name.setresizeable(true);
name.setCellValueFactory(e->new ReadOnlyStringWrapper(((ProductPS)e.getValue()).getLang().get(0.getName()));
列。添加(id);
列。添加(名称);
返回列;
}
现在有人问为什么安卓系统会出现这样的问题?这是可能的改变代码和编译到android?我的类没有SimpleProperty。在您的情况下,不需要使用泛型。您的
T
总是被转换为ProductPS
,并且TableColumn
s的值是已知的。这应该可以做到:
@Override
public List<TableColumn<ProductPS, ?>> setColumns() {
List<TableColumn<ProductPS, ?>> columns = new ArrayList<>();
TableColumn<ProductPS, Long> id = new TableColumn<>();
id.setText("id");
id.setEditable(true);
id.setSortable(true);
id.setResizable(true);
id.setCellValueFactory(e -> new ReadOnlyLongWrapper(e.getValue().getId()));
TableColumn<ProductPS, String> name = new TableColumn<>();
name.setText("name");
name.setEditable(true);
name.setSortable(true);
name.setResizable(true);
name.setCellValueFactory(e -> new ReadOnlyStringWrapper(e.getValue().getLang().get(0).getName()));
columns.add(id);
columns.add(name);
return columns;
}
@覆盖
公共列表setColumns(){
列表列=新的ArrayList();
TableColumn id=新的TableColumn();
id.setText(“id”);
id.setEditable(true);
id.setSortable(真);
id.setresizeable(true);
id.setCellValueFactory(e->new ReadOnlyLongWrapper(e.getValue().getId());
TableColumn name=新的TableColumn();
name.setText(“名称”);
name.setEditable(true);
name.setSortable(true);
name.setresizeable(true);
name.setCellValueFactory(e->new ReadOnlyStringWrapper(e.getValue().getLang().get(0.getName()));
列。添加(id);
列。添加(名称);
返回列;
}
@Override
public List<TableColumn<ProductPS, ?>> setColumns() {
List<TableColumn<ProductPS, ?>> columns = new ArrayList<>();
TableColumn<ProductPS, Long> id = new TableColumn<>();
id.setText("id");
id.setEditable(true);
id.setSortable(true);
id.setResizable(true);
id.setCellValueFactory(e -> new ReadOnlyLongWrapper(e.getValue().getId()));
TableColumn<ProductPS, String> name = new TableColumn<>();
name.setText("name");
name.setEditable(true);
name.setSortable(true);
name.setResizable(true);
name.setCellValueFactory(e -> new ReadOnlyStringWrapper(e.getValue().getLang().get(0).getName()));
columns.add(id);
columns.add(name);
return columns;
}