在使用枚举填充ChoiceBox时,可以通过使用泛型来避免未检查的类型转换。以下是一个代码示例:
import javafx.scene.control.ChoiceBox;
import javafx.collections.FXCollections;
enum Color {
RED,
GREEN,
BLUE
}
public class Main {
public static void main(String[] args) {
ChoiceBox choiceBox = new ChoiceBox<>();
// 使用FXCollections.observableArrayList方法创建一个ObservableList
choiceBox.setItems(FXCollections.observableArrayList(Color.values()));
// 设置默认选项
choiceBox.setValue(Color.RED);
// 获取选中的颜色
Color selectedColor = choiceBox.getValue();
System.out.println("Selected color: " + selectedColor);
}
}
在上面的示例中,我们将ChoiceBox的泛型类型设置为Color,这样我们就可以直接使用Color枚举类型的值来填充ChoiceBox。这样就避免了未检查的类型转换,还可以获得编译时类型检查的好处。
通过使用泛型,我们可以在编译时捕获类型不匹配的错误,而不是在运行时发生ClassCastException。