144得票10回答
Java中的标记接口是什么?

我曾经学过,在Java中,标记接口是一种空接口,用于向编译器或JVM发出信号,以便对实现该接口的类的对象进行特殊处理,例如序列化、克隆等。 但最近我了解到,它实际上与编译器或JVM无关。例如,在Serializable接口的情况下,ObjectOutputStream的writeObject...

62得票10回答
Java中标记接口的用途是什么?

当标记接口(如Serializable)中没有要实现的内容时,实现它的用途是什么?

59得票6回答
使用标记接口而不是属性的强制理由

在Stack Overflow上之前已经讨论过,我们应该优先使用属性而不是标记接口(没有任何成员的接口)。MSDN上的接口设计文章也肯定了这一建议: 避免使用标记接口(没有成员的接口)。 自定义属性提供了标记类型的方法。有关自定义属性的更多信息,请参见编写自定义属性。当您可以推迟对属性的检...

32得票9回答
Java:哪些可以序列化,哪些不能序列化?

如果Serializable接口只是用于传递Java类的元数据的标记接口-我有点困惑: 阅读了Java序列化算法的过程(从底部到顶部的元数据,然后从顶部到底部的实际实例数据),我无法真正理解哪些数据不能通过该算法处理。 简而言之: 什么数据可能导致NotSerializableExce...

24得票2回答
为什么ObjectOutputStream.writeObject不接受Serializable对象?

为什么ObjectOutputStream.writeObject(Object o)不接受Serializable?为什么它要接收一个Object?

17得票5回答
为什么要使用Java注解?

我想问为什么Java注释经常被使用...我知道它们在例如JPA中取代了XML配置,但为什么这种配置被使用呢? 考虑以下代码片段:@Entity class Ent{ // some fields } //... somewhere in the other file far far a...

13得票3回答
标记接口与空抽象类的区别

我很难决定是使用一个标记接口还是一个空的抽象类。 我有两个类BrokerResponse和Notification,它们没有结构上的相似之处。唯一连接它们的是需要订阅。void register(Receivable receivable, BrokerObserver observer) 我...

11得票4回答
标记接口(如Serializable)能包含默认方法吗?

我认为不行,因为标记接口原则是不含有任何方法,但是由于默认方法不是抽象的,所以我不确定。

10得票3回答
为什么类需要实现可序列化标记接口来进行序列化?

从技术上讲,我知道为什么类需要实现Serializable接口。原因是ObjectOutputStream的writeObject方法在写入对象状态之前会内部检查“是否实现了Serializable”。 但我的问题是这样做的必要性是什么?writeObject方法可以直接写入对象状态,无论对...