接口列表的目的是什么:List<InterfaceFileName>?是不好的做法吗?

What's the purpose of a list of interfaces: List<InterfaceFileName>? Is a bad practice?

我正在做一个 Java EE 项目,但是有些方法 return 一个接口列表。不知道这样做的目的,或者这是否是一种不好的做法。试图查找接口列表,但所有信息都显示为接口列表。

    public List<SomeInterfaceRO> getAttribute() {
        return (List<SomeInterfaceRO>)someInterfaceBO
    }
public interface SomeInterfaceRO {

    public String getName();

    public String getComment();

// More methods ...  
}

someInterfaceBO 是实现该接口的 Java class。

考虑一下:当一个方法在其签名上具有 return 接口(例如 Cloneable)时,其余代码会听到该方法 return 一个 class 扩展了该接口,而不是接口本身。

接口列表只是实现该接口的 classes 的对象列表。每一个都可以是不同的class,必须所有的都必须实现接口,因为其余的代码想假设它可以调用接口上可用的那些元素的一些方法。

例如,a List<Cloneable> 可以有 a Descriptor、a AclEntry、a CharacterIterator、a CertSelector 作为元素。我个人甚至不知道它们是什么,但我可以假设我可以克隆它们,因为它们是 Cloneable!

希望我有所帮助!