如何用Java编写我们自己的标记接口?
我知道java中的标记接口。它用于定义有关类的特定行为。例如,可序列化接口具有将对象存储到字节流及其反向进程的特定功能。但我不知道这个特定行为是在哪里实现的,因为它没有任何方法。
- JVM 如何调用此特定行为?
- 如何编写我们自己的标记界面?您能给我一个简单的用户定义的标记界面供我理解吗?
- 是否可以在标记界面中使用方法?
请指导我解决此问题。
我知道java中的标记接口。它用于定义有关类的特定行为。例如,可序列化接口具有将对象存储到字节流及其反向进程的特定功能。但我不知道这个特定行为是在哪里实现的,因为它没有任何方法。
请指导我解决此问题。
ObjectOutputStream
并将检查您的类是否实现 , 。如果是,它将继续,否则将抛出。ObjectInputStream
Serializable
Externalizable
NonSerializableException
创建一个没有任何方法的接口,这就是您的标记接口。
样本
public interface IMarkerEntity {
}
如果实现此接口的任何类将被应用程序视为数据库实体。
示例代码:
public boolean save(Object object) throws InvalidEntityException {
if(!(object instanceof IMarkerEntity)) {
throw new InvalidEntityException("Invalid Entity Found, cannot proceed");
}
database.save(object);
}
标记接口模式的整个思想是提供一种表示“是的,我是某物”的意思,然后系统将继续使用默认过程,就像当你将类标记为Serialzable时,它只是告诉这个类可以转换为字节。