【发布时间】:2015-09-18 05:54:00
【问题描述】:
我有这个界面:
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();
}
}
我们可以看到方法的签名和界面中的底部签名是一样的。但是,我的类有一个错误,说它没有实现接口中的所有方法。我做了快速修复以使类实现接口中的方法,它为类提供了这个方法:
@Override
public boolean isEmptyDate(int day, int month, int year, long id) {
return false;
}
为什么Android Studio 认为我的接口isEmptyDate 方法采用id 类型的long 参数?
【问题讨论】:
-
尝试清理缓存(文件 - 使缓存无效/重新启动)并重建项目
-
我觉得很奇怪。
-
如果两个版本的方法名称相同,则需要同时实现
标签: java android android-studio interface