无法应用构造函数

Constructor cannot be applied

我在 Android Studio Development Essentials 6th Edition 上做这个教程,这个教程是关于 SQLiteDatase 的,所以我写了一切,但每当我尝试调用 Product Constructor 时,我总是出错

查找产品

  public Product findProduct(String productname) {
    String query = "Select * FROM " + TABLE_PRODUCTS + " WHERE " +
            COLUMN_PRODUCTNAME + " = " + productname + ";";
    SQLiteDatabase db = this.getWritableDatabase();
    Cursor cursor = db.rawQuery(query, null);
    Product product = new Product();// Cannot be applied
    if (cursor.moveToFirst()) {
        cursor.moveToFirst();
        product.setId(Integer.parseInt(cursor.getString(0)));
        product.setProductName(cursor.getString(1));
        product.setQuantity(Integer.parseInt(cursor.getString(2)));
        cursor.close();
    } else {
        product = null;
    }
    db.close();
    return product;
}

我的产品Class

public class Product {
private int id;
private String ProductName;
private int Quantity;

public Product(int _id, String _productname, int _quantity) {
    this.id = _id;
    this.ProductName = _productname;
    this.Quantity = _quantity;
}

public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

public String getProductName() {
    return ProductName;
}

public void setProductName(String productName) {
    this.ProductName = productName;
}

public int getQuantity() {
    return Quantity;
}

public void setQuantity(int quantity) {
    this.Quantity = quantity;
}

}

谢谢。

如果您创建了自己的构造函数,则不会生成默认构造函数。请看一下Java default constructor 此致

    public Product(int _id, String _productname, int _quantity) {

是你 Product class 定义中的 只有 构造函数(你没有其他的),所以你必须调用它的构造函数 使用这 3 个参数 - 而不是

    Product product = new Product();// Cannot be applied

将某物用作

    Product product = new Product(132, "Wheel", 1000);

Another solution:

在你的Productclass中添加另一个构造函数除了现有的,e。 G。一个空的:

    public Product() {}

(它可能位于您现有的之前或之后)。