我有以下代码,我试图从我的数据库(itemName,itemId)返回数据。但它给了我以下错误:
Items() in Items cannot be applied to:
Expected Actual
Parameters: Arguments:
pool: com.sun.tools.javac.jvm.Pool itemName (java.lang.String)
code: com.sun.tools.javac.jvm.Code itemId (java.lang.String)
symtab: com.sun.tools.javac.code.Symtab quantity (java.lang.String)
types: com.sun.tools.javac.code.Types cost (java.lang.String)
这是我的代码:
public List<Items> getItemList() throws SQLException{
try {
Statement statement = connection.createStatement();
ResultSet results = statement.executeQuery("SELECT * FROM Items");
{
List<Items> itemsList = new ArrayList<>();
while (results.next()) {
String itemName = String.valueOf(results.getString("item_name"));
String itemId = String.valueOf(results.getString("item_id"));
Items items = new Items(itemName, itemId); // where the error is
itemsList.add(items);
}
return itemsList;
}
} catch(Exception e){
e.printStackTrace();
}
return null;
}
是因为类型不兼容(对象对字符串)吗?如果是这样,String.valueOf ......不正确?
修改
public class Items {
// Constructor
public Items(String itemName, String itemId){
setItemName(itemName);
setItemId(itemId);
}
// itemName
private final StringProperty itemName = new SimpleStringProperty(this,"itemName");
public StringProperty itemNameProperty(){
return itemName;
}
public final String getItemName(){
return itemNameProperty().get();
}
public final void setItemName(String itemName){
itemNameProperty().set(itemName);
}
// itemId
private final StringProperty itemId = new SimpleStringProperty(this,"itemId");
public StringProperty itemIdProperty(){
return itemId;
}
public final String getItemId(){
return itemIdProperty().get();
}
public final void setItemId(String itemId){
itemIdProperty().set(itemId);
}
}
答案 0 :(得分:2)
这看起来像是从错误的包导入Items
类引起的问题。如果您有表单的导入声明
import some.package.name.Items ;
靠近包含第一个代码块的类的顶部,然后删除该行。
如果包含第一个代码块的类与您的Items
类位于不同的包中,则需要添加一行
import the.correct.package.Items ;
代替不正确的import
声明。将the.correct.package
替换为包含Items
类的包的名称(在Items.java
中,查看第一行代码,这是一个package
语句,用于定义哪个包包含{ {1}})。
对于某些背景信息,我建议Meaning of the import statement in a Java file