无法应用构造函数
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:
在你的Product
class中添加另一个构造函数除了现有的,e。 G。一个空的:
public Product() {}
(它可能位于您现有的之前或之后)。
我在 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:
在你的Product
class中添加另一个构造函数除了现有的,e。 G。一个空的:
public Product() {}
(它可能位于您现有的之前或之后)。