我目前正在爲我的最後一年項目編寫代碼,並且遇到了一個我似乎無法修復的問題。缺少返回語句public long
我改變了我的公共空間在我的DatabaseHandler(返回作爲身份證,然後在別處使用)公共無效,並且因爲改變代碼它堅持我有一個缺少的返回語句,但我無法弄清楚在哪裏或爲什麼。原始代碼工作正常,但只要我將public void更改爲public,就會出現丟失的return語句錯誤。
原始代碼:
public void UpdateProfileData(String email, String forename, String surname, String password, String DOB, int height, float weight, boolean gender) {
String query = "SELECT * FROM Profile";
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(query, null);
int count = cursor.getCount();
if (count == 0)
{
//No data stored - we need to insert the row.
db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("Email", email);
values.put("Forename", forename);
values.put("Surname", surname);
values.put("Password", password);
values.put("DOB", DOB);
values.put("Height", height);
values.put("Weight", weight);
values.put("Gender", gender);
db.insert("Profile", null, values);
}
else if (count == 1)
{
db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("Email", email);
values.put("Forename", forename);
values.put("Surname", surname);
values.put("Password", password);
values.put("DOB", DOB);
values.put("Height", height);
values.put("Weight", weight);
values.put("Gender", gender);
db.update("Profile", values, "Id=1", null);
}
else
{
//Something went wrong.
}
}
而新代碼:
public long UpdateProfileData(String email, String forename, String surname, String password, String DOB, int height, float weight, boolean gender) {
String query = "SELECT * FROM Profile";
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(query, null);
int count = cursor.getCount();
if (count == 0)
{
//No data stored - we need to insert the row.
db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("Email", email);
values.put("Forename", forename);
values.put("Surname", surname);
values.put("Password", password);
values.put("DOB", DOB);
values.put("Height", height);
values.put("Weight", weight);
values.put("Gender", gender);
long id = db.insert("Profile", null, values);
return id;
}
else if (count == 1)
{
db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("Email", email);
values.put("Forename", forename);
values.put("Surname", surname);
values.put("Password", password);
values.put("DOB", DOB);
values.put("Height", height);
values.put("Weight", weight);
values.put("Gender", gender);
long id = db.update("Profile", values, "Id=1", null);
return id;
}
else
{
//Something went wrong.
}
}
我是新來的Java和一般的編碼,所以如果這是一個愚蠢的錯誤,請記得要善待和解釋簡單來說!預先感謝您的幫助!
您需要在'出錯的情況下返回一些東西。 – CommonsWare
開始從'else'塊中返回一些東西。例如,'return -1l;' – user2004685
除了@CommonsWare指出的內容之外,這段代碼是爲什麼使用單個返回點通常是最有效的方法的一個例子。 – KevinO