我正在处理一个JavaFX表单。表单应该取值并将其添加到数据库中。每当我试图通过.getValue获取值时,它就会创建一个错误
Incompatible Types: Object cannot be converted to Int以下是FXML代码:
<Spinner fx:id="spinner" layoutX="494.0" layoutY="528.0" maxWidth="100.0" minWidth="100.0" prefWidth="100.0">
<valueFactory>
<SpinnerValueFactory.IntegerSpinnerValueFactory min="0" max="30" initialValue="20" amountToStepBy="1"/>
</valueFactory>
</Spinner>Java代码:
Spinner mySpinner=(Spinner) spinner;
int value = mySpinner.getValue;谢谢你的帮忙
发布于 2017-11-03 10:38:15
只是把这条评论作为回答。为解决这一问题:
从不使用raw types。用这样的方法代替:
Spinner<Integer> mySpinner = (Spinner<Integer>) spinner; 发布于 2017-11-03 13:03:46
正如另一个答案所述,您不应该使用原始类型。Spinner是一个属型:它被定义为Spinner,其中T是一个类型参数,表示“旋转器持有的值的类型”。更正式地说,文档声明
T-可以在Spinner中迭代的所有值的类型。常见类型包括Integer和String。
当使用泛型类时,应该始终指定类型,例如,在您的情况下,应该使用
Spinner<Integer>引用遍历整数的旋转器;您不应该只使用“原始类型”。
Spinner因为您已经在FXML中定义了自旋器
<Spinner fx:id="spinner" ... >你大概是在把它注入控制器。在注入参数化类型时,只需使用:
public class MyController {
@FXML
private Spinner<Integer> spinner ;
// ...
}现在,编译器确信spinner将Integer作为值,因此您只需执行以下操作
int value = spinner.getValue();还请参见, List
https://stackoverflow.com/questions/47091784
复制相似问题