查看下面的代码,Marker interfaces表示我的BusinessObjectSerializable(对吗?)。

旧代码:

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/

10-10 07:07