查看下面的代码,Marker interfaces
表示我的BusinessObject
是Serializable
(对吗?)。
旧代码:
public final class State implements BusinessObject
...
}
public class Location implements BusinessObject{
...
}
import java.io.Serializable;
public interface BusinessObject extends Serializable{
}
我的问题是,由于
BusinessObject
的唯一目的是表明它是Serializable
,可以将其简单地替换为:public final class State implements Serializable {
...
public class Location implements Serializable {
...
并删除
BusinessObject.java
? 最佳答案
从理论上讲,是的,只要BusinessObject
实际上仅扩展Serializable
。
现在,在更广泛的范围内,您可能需要先执行完整性检查,然后再进行完整性检查。
例如,在IDE中打开BusinessObject
接口的类型层次结构,并查看所有实现类,扩展接口等。
甚至在某些极端情况下,代码库都可以编译,但是如果BusinessObject
接口是通过反射或在声明性标记(例如JSP)中引用的,则在运行时会发生问题。
对于这些情况,我还建议在整个项目中对BusinessObject
进行文本搜索。
这也可以帮助您消除已过时的注释。
关于java - 可将Marker接口(interface)替换为Serializable,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47141261/