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

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

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

Ответ 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);