Возможно ли создать интерфейс, расширяющий интерфейс Serializable?
Если да, будет ли этот расширенный интерфейс работать как интерфейс Serilizable? Если нет, то почему?
Возможно ли создать интерфейс, расширяющий интерфейс Serializable?
Если да, будет ли этот расширенный интерфейс работать как интерфейс Serilizable? Если нет, то почему?
Да, вы можете расширить интерфейс Serializable
. Если вы это сделаете, все классы, реализующие новый субинтерфейс, также будут реализовывать Serializable
.
Так можем ли мы это сделать?
Да
будет выполняться расширенный интерфейс тот же эффект, что и Serilizable интерфейс?
Да
Да, это нормально. Я сделал это один раз, когда решил, что все классы в моем домене должны быть сериализуемыми. Они уже реализовали некоторый интерфейс, поэтому я просто расширил этот интерфейс от Serializable (как вы описали).
Я объясняю это ситуацией, часто встречающейся в 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);