我有一个组合框。它有类别名称。所以我需要将字符串传递给类别。 类别类别 = (Category)cmbCategory.getSelectedItem();此行出现错误,指出无法将字符串转换为类别类型..
private void btnSaveActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
double amount = Double.parseDouble(txtAmount.getText());
Expense expense = new Expense();
expense.setReason(txtReason.getText());
expense.setAmount(amount);
DateFormat format = new SimpleDateFormat("MMMM d, yyyy");
Category category = (Category)cmbCategory.getSelectedItem();
String startDate = ((JTextField)txtDate.getDateEditor().getUiComponent()).getText();
try {
Date date = format.parse(startDate);
expense.setDate(date);
} catch (ParseException ex) {
Logger.getLogger(ExpenseView.class.getName()).log(Level.SEVERE, null, ex);
}
expense.setCategory(category);
ExpenseController.saveExpense(expense);
}
最佳答案
您似乎正在尝试转换String
,然后将其分配给Category
。
由于 String
显然不是 Category
,也不是实现 Category
,因此您会收到此异常。
您可以为 Category
类添加一个字符串数据成员,例如 categoryName
,然后按如下方式设置:
Category category = new Category().setCategoryName(cmbCategory.getSelectedItem());
关于java.lang.ClassCastException : java. lang.String 无法转换为 Category 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39397980/