I have the following code and I'm trying to return data from my database (itemName, itemId). Yet it gives me the following error:
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)
Here is my code:
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;
}
Is it because the types are incompatible (object v. string)? If so, String.valueOf... incorrect?
EDIT
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);
}
}