Eclipse警告:"<methodName>具有非API返回类型<parameterizedType>"

Jam*_*nen 5 java eclipse warnings eclipse-rcp

我和我的同事最近几次遇到过这个警告信息.对于以下代码:

package com.mycompany.product.data;

import com.mycompany.product.dao.GenericDAO;

public abstract class EntityBean {
    public abstract GenericDAO<Object, Long> getDAO();
    //                                       ^^^^^^      <-- WARNING OCCURS HERE
}
Run Code Online (Sandbox Code Playgroud)

警告显示在列出的位置中

EntityBean.getDAO() has non-API return type GenericDAO<T, ID>
Run Code Online (Sandbox Code Playgroud)

Google搜索"具有非API返回类型"仅显示此消息显示在问题列表中的实例.即,没有公开解释.

这是什么意思?我们可以在Eclipse中创建一个使用问题过滤器以使消息消失,但如果我们的使用是合法的问题,我们不希望这样做.

谢谢!

编辑:此警告与参数化无关,因为此声明getFactory()也会产生相同的警告:

public abstract class EntityBean {
    protected DAOFactory getFactory() {
        return DAOFactory.instance(DAOFactory.HIBERNATE);
    }
}
Run Code Online (Sandbox Code Playgroud)

Jam*_*nen 4

弄清楚了。

这些类(GenericDAO以及DAOFactory作为返回类型)EntityBean位于不同的包中。其中一个包(包含 的包)已在清单文件的 部分EntityBean中列出,而另一个包则未列出。最终效果是这些类不是 API,而是由 API 类型返回。Export-Package:DAODAO

感谢大家,特别是 JRL 为我指明了正确的方向。