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接口中。我真傻。谢谢这甚至与问题无关。