我有這樣的接口:實現接口 - 方法簽名錯誤
public interface IAppointmentDAO extends IAppointmentDate {
void close();
void deleteAppointment(long id);
Appointment getAppointment(long id);
List<Appointment> getGroomerAppointmentsByDate(int groomerId, Calendar date);
List<Appointment> getGroomerAppointmentsByDate(int groomerId,
Calendar date, int appId);
List<Event> getGroomerEventsByDate(int groomerId, Calendar date);
boolean isEmptyDate(int day, int month, int year, int groomerId);
我有一個實現該接口的類。它有這種方法:
@Override
public boolean isEmptyDate(int day, int month, int year, int groomerId) {
Calendar today = Calendar.getInstance();
today.set(year, month, day, 0, 0, 0);
today.set(Calendar.MILLISECOND, 0);
Calendar tomorrow = Calendar.getInstance();
tomorrow.set(year, month, day + 1, 0, 0, 0);
tomorrow.set(Calendar.MILLISECOND, 0);
String[] insertArgs = new String[] {
String.valueOf(today.getTimeInMillis()),
String.valueOf(tomorrow.getTimeInMillis()),
String.valueOf(groomerId) };
Cursor cursor = database.rawQuery(
SQLiteConstants.COUNT_APPOINTMENTS_FOR_DATE, insertArgs);
try {
if (cursor.moveToFirst())
return cursor.getInt(0) > 0 ? false : true;
return true;
} finally {
cursor.close();
}
}
我們可以看到該方法的簽名與接口中的底部簽名相同。但是,我的類有一個錯誤,說它沒有實現接口中的所有方法。我做的quickfix使類實現從界面的方法和它提供的類用這種方法:
@Override
public boolean isEmptyDate(int day, int month, int year, long id) {
return false;
}
爲什麼Android的工作室認爲我的接口isEmptyDate
方法採用long
類型的id
參數?
嘗試清理緩存(文件 - 無效的緩存/重新啓動)並重建項目 –
看起來很奇怪。 –
如果可用的兩個版本的方法名稱相同,則需要同時執行 – SacJn