gpt4 book ai didi

java - 我无法将组合框的值传递到对象中。错误是 'incompatible types:Object cannot be converted to size'

转载 作者:行者123 更新时间:2023-12-02 10:04:24 25 4
gpt4 key购买 nike

我的项目中有一堆枚举,我已将它们用于组合框中的值,但是当我将这些值传递到我的“披萨”类时,它给了我错误。

public class Pizza {
private Size size;
private Crust crust;
private Sauce sauce;
private Topping topping1;
private Topping topping2;
public Pizza(Size size,Crust crust, Sauce sauce,
Topping topping1,Topping topping2){
this.size=size;
this.crust=crust;
this.sauce=sauce;
this.topping1=topping1;
this.topping2=topping2;
}
//blah blah
------------------------------------------
//This is one of my enums.
public enum Size {
SMALL(9.45),MEDIUM(11.87),LARGE(15.9);
private double size;
Size(double size){this.size=size;}
public double getSize(){return this.size;}
public String getSizeAsString(){return String.valueOf(size);}

}
-------------------------------------------
public class PizzaForm extends javax.swing.JFrame {

public PizzaForm() {
initComponents();
initiateComboBoxes();

}
public void initiateComboBoxes(){
cboSize.setModel(new DefaultComboBoxModel<>(Size.values()));
}
---------------------------------------------
private void btnAddToOrderActionPerformed(java.awt.event.ActionEvent evt) {
//when button clicked..
Pizza pizza=new Pizza(cboSize.getSelectedItem(),cboCrust.getSelectedItem(),cboSauce.getSelectedItem(),cboTopping1.getSelectedItem(),cboTopping2.getSelectedItem());
}

错误出现在倒数第二行。它突出显示了我的整个错误行。谁能告诉我可能是什么问题?我没有将任何内容转换为“大小”,所以我不知道问题是什么。谢谢

最佳答案

JComboBox#getSelectedItem() 不是“泛型化”的,因此只知道返回原始对象类型。您需要将从该方法返回的对象转换为适当的类型,例如本例中的 Size。

所以:

Pizza pizza = new Pizza((Size) cboSize.getSelectedItem(), 
(Crust) cboCrust.getSelectedItem(),
(Sauce) cboSauce.getSelectedItem(),
(Topping) cboTopping1.getSelectedItem(),
(Topping) cboTopping2.getSelectedItem());

关于java - 我无法将组合框的值传递到对象中。错误是 'incompatible types:Object cannot be converted to size',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55406350/

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