Подтвердить что ты не робот

Может ли интерфейс расширить интерфейс Serializable?

Возможно ли создать интерфейс, расширяющий интерфейс Serializable?

Если да, будет ли этот расширенный интерфейс работать как интерфейс Serilizable? Если нет, то почему?

4b9b3361

Ответ 1

Да, вы можете расширить интерфейс Serializable. Если вы это сделаете, все классы, реализующие новый субинтерфейс, также будут реализовывать Serializable.

Ответ 2

Так можем ли мы это сделать?

Да

будет выполняться расширенный интерфейс тот же эффект, что и Serilizable интерфейс?

Да

Ответ 3

Да, это нормально. Я сделал это один раз, когда решил, что все классы в моем домене должны быть сериализуемыми. Они уже реализовали некоторый интерфейс, поэтому я просто расширил этот интерфейс от Serializable (как вы описали).

Ответ 4

Я объясняю это ситуацией, часто встречающейся в android. Если вы хотите передать экземпляр пользовательского прослушивателя (интерфейса), чтобы фрагментировать, то расширитель (интерфейс) расширителя Serializable может быть для вас вариантом. например,

Предположим, что существует интерфейс:
public interface OnDurationChangeListener extends Serializable {
    public void onDurationChange(Duration duration);
}

из Activity Я хочу экспортировать экземпляр Listener (interface) в Fragment.

bundle.putSerializable(ARGUMENT_LISTENER, new OnDurationChangeListener() {
    @Override
    public void onDurationChange(Duration duration) {
        // some code   
    }
});

И в фрагменте вы можете получить этот экземпляр Listener как:

mListener = (OnDaysSelectListener) getArguments().getSerializable(ARGUMENT_LISTENER);

И из фрагмента я могу вызвать метод обратного вызова в действии как

mListener.onDaysSelect(mWeeKDayList);