gpt4 book ai didi

java - ChangeListener-参数

转载 作者:行者123 更新时间:2023-12-01 15:19:46 25 4
gpt4 key购买 nike

在 JavaFX 应用程序中,我附加了 ChangeListenerTableCelltableRowProperty ,其类型为 ChangeListener<? super TableRow> (TableRow<T> 也是通用的)。

我所做的如下:

public final class PairingResultEditingCell extends TableCell<Pairing, Result> {

private final ChoiceBox<Result> choiceField;

// Unchecked casts and raw types are needed to wire the
// tableRowProperty changed listener
@SuppressWarnings({ "unchecked", "rawtypes" })
private PairingResultEditingCell() {

super();
this.choiceField = new ChoiceBox<Result>();
// ReadOnlyObjectProperty<TableRow> javafx.scene.control.TableCell.tableRowProperty()
this.tableRowProperty()
// this cast is the actual source of the warnings
// rawtype of TableRow<T>: ChangeListener<? super TableRow>
.addListener((ChangeListener<? super TableRow>) new ChangeListener<TableRow<Result>>() {

@Override
public void changed(
final ObservableValue<? extends TableRow<Result>> observable,
final TableRow<Result> oldValue,
final TableRow<Result> newValue) {
choiceField.setVisible(newValue.getItem() != null);
}
});
}
}

我需要两个抑制两种警告才能执行此操作:@SuppressWarnings({ "unchecked", "rawtypes" }) 。 rawtype 警告似乎仅限 Eclipse。然而,Jenkins CI 服务器由于前者而拒绝编译代码(并且我无法更改其配置)。

有没有办法在没有未经检查的强制转换和原始类型的情况下做到这一点?我尝试了一个实现该接口(interface)的内部类,但我陷入了困境。我也在与Java的? super MyClass作斗争一般语法。

最佳答案

使用以下代码我没有收到任何警告:

public final class PairingResultEditingCell extends TableCell<Pairing, Result> {

private final ChoiceBox<Result> choiceField;

private PairingResultEditingCell() {

super();
this.choiceField = new ChoiceBox<Result>();

ReadOnlyObjectProperty<TableRow> roop= this.tableRowProperty();
this.tableRowProperty().addListener(new ChangeListener<TableRow>() {
@Override
public void changed(ObservableValue<? extends TableRow> observable, TableRow oldValue, TableRow newValue) {
choiceField.setVisible(newValue.getItem() != null);
}
});
}
}

关于java - ChangeListener<? 的未选中警告super TableRow>-参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11117069/

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