是否可以创建一个扩展Serializable接口的接口?
如果可以,那么这个扩展接口是否会像Serializable接口一样工作?如果不行,为什么?
是否可以创建一个扩展Serializable接口的接口?
如果可以,那么这个扩展接口是否会像Serializable接口一样工作?如果不行,为什么?
是的,你可以扩展 Serializable
接口。如果这样做了,所有实现新子接口的类也都将实现 Serializable
。
那么我们可以这样做吗?
可以。
扩展的接口会产生和Serializable接口相同的效果吗?
是的。
是的,这很正常。当我决定我的域中所有类都应该是可序列化的时,我曾经做过一次。它们已经实现了一些接口,所以我只需从Serializable扩展那个接口(就像你描述的那样)。
我将通过一个在Android中经常遇到的情况来解释这个问题。如果你想将自定义监听器(接口)的实例传递给片段,则该监听器(接口)扩展Serializable可能是一个选项。例如:
假设有一个接口:
public interface OnDurationChangeListener extends Serializable {
public void onDurationChange(Duration duration);
}
我想从Activity中将Listener(接口)实例导出到Fragment中。
bundle.putSerializable(ARGUMENT_LISTENER, new OnDurationChangeListener() {
@Override
public void onDurationChange(Duration duration) {
// some code
}
});
mListener = (OnDaysSelectListener) getArguments().getSerializable(ARGUMENT_LISTENER);
从这个片段中,我可以像这样调用活动中的回调方法:
mListener.onDaysSelect(mWeeKDayList);
Activity
的实例不能实现Serializable
接口,因为它扩展了Context
。 - Julius