gpt4 book ai didi

Java方法不重写

转载 作者:太空宇宙 更新时间:2023-11-04 07:30:55 25 4
gpt4 key购买 nike

我正在尝试在 TableView 中显示从数据库获取的图像。以下是我如何设置带有图像列的表格 View :

TableColumn prodImageCol = new TableColumn("IMAGES");
prodImageCol.setCellValueFactory(new PropertyValueFactory<Product, Image>("prodImage"));
prodImageCol.setMinWidth(100);
// setting cell factory for product image
prodImageCol.setCellFactory(new Callback<TableColumn<Product, Image>, TableCell<Product, Image>>() {
@Override
public TableCell<Product, Image> call(TableColumn<Product, Image> param) {
TableCell<Product, Image> cell = new TableCell<Product, Image>() {
@Override //Error here
public void updateItem(Product item, boolean empty) {
if (item != null) {
ImageView imageview = new ImageView();
imageview.setFitHeight(50);
imageview.setFitWidth(50);
imageview.setImage((Image) item.getprodImage());
setGraphic(imageview);
}
}
};
return cell;
}
});

但是,我得到的方法不会覆盖或实现父类(super class)型的方法。我不知道为什么会这样,因为我在网站上遵循了关于如何在表格 View 中显示图像的相同内容。有人可以向我解释一下为什么会这样吗?提前致谢。

最佳答案

UPDATE:updateItem方法的签名是:

@Override
protected void updateItem(Image image, boolean b) {
super.updateItem(image, b);
}

我太快发布了原始答案(在我遇到与您相同的编译错误之前)。

如果您愿意,您可以使用这样的方法:

public void updateItem(Product item, boolean empty);

你不能用以下方式注释它:

    @Override

这意味着您正在重新定义具有与基类完全相同的签名(名称和参数)的方法。

或者,反转泛型类型参数:

<Image, Product> vs. <Product, Image>

关于Java方法不重写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17700389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com