Java 实现接口-方法签名错误
我有这个界面:Java 实现接口-方法签名错误,java,android,android-studio,interface,Java,Android,Android Studio,Interface,我有这个界面: public interface IAppointmentDAO extends IAppointmentDate { void close(); void deleteAppointment(long id); Appointment getAppointment(long id); List<Appointment> getGroomerAppointmentsByDate(int groomerId, Calendar da
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
参数?我猜带有long id参数的方法来自IAppointDate接口。似乎是该方法的问题。
1.只需用false初始化一个局部布尔变量。
2.将cursor.getInt(0)赋值给上述变量。
3.在finally之后返回此变量。
4.它应该可以解决您的问题尝试清理缓存(文件-使缓存无效/重新启动)并重建项目,我觉得这很奇怪。如果有两个相同方法名称的版本可用,则需要实现两种良好的想法,但这次不是这样。在我的界面中,
布尔值isEmptyDate(int-day、int-month、int-year、int-groomerId)代码>显示为灰色,表示从未使用过。这可能是正确的(从未使用过),因为没有人调用它。你能发布这两个接口的完整代码吗?IAppointmentDAO和IAppointmentDate?我看到它在IAppointmentDate接口中。我真傻。谢谢这甚至与问题无关。