无法应用构造函数

时间:2016-10-31 07:22:43

标签: java android class sqliteopenhelper

我在 Android Studio开发精简版第6版 上做了这个教程,教程是关于SQLiteDatase所以我写了evrything但是每当我尝试调用时我都会收到错误产品构造函数书上的所有内容都是正确的,但我无法理解,这是查找产品构造函数和我的产品类。

查找产品

DATE_FORMAT = '%d/%m/%Y'

我的产品类

  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;
}

}

谢谢。

2 个答案:

答案 0 :(得分:3)

public static void main(String[] args) {
        String input = "dad";
        char temp[] = input.toCharArray();//converting it to a array so that each character can be compared to the original string
        char output[] = new char[temp.length];//taking another array of the same size as the input string
        for (int i = temp.length - 1, j = 0; i >= 0; i--, j++) {//i variable for iterating through the input string and j variable for inserting data into output string.
            System.out.print(temp[i]);//printing each variable of the input string in reverse order.
            output[j] = temp[i];//inserting data into output string
        }
        System.out.println(String.valueOf(output));
        if (String.valueOf(output).equalsIgnoreCase(input)) {//comparing the output string with the input string for palindrome check
            System.out.println("palindrome");
        }
}

是您 public Product(int _id, String _productname, int _quantity) { 类定义中的唯一构造函数(您没有其他任何内容),因此您必须使用这3个参数调用其构造函数 < / strong> - 而不是

Product

使用某些东西

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

另一种解决方案:

Product product = new Product(132, "Wheel", 1000); 中添加另一个构造函数,除了现有的,e。 G。一个空的:

Product

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

答案 1 :(得分:2)

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