我的同事和我最近几次遇到此警告消息。对于下面的代码:Eclipse警告:“<methodName>具有非API返回类型<参数化类型>”
package com.mycompany.product.data;
import com.mycompany.product.dao.GenericDAO;
public abstract class EntityBean {
public abstract GenericDAO<Object, Long> getDAO();
// ^^^^^^ <-- WARNING OCCURS HERE
}
警告出现在上市现场为
EntityBean.getDAO() has non-API return type GenericDAO<T, ID>
一个谷歌搜索“具有非API返回类型”只显示其中出现的问题列出了此消息实例。也就是说,没有公开的解释。
这是什么意思?我们可以在Eclipse中创建一个使用问题过滤器,以使消息消失,但如果我们的用法是合法问题,我们不希望这样做。
谢谢!
编辑:此警告没有与参数做,因为这个声明的getFactory()
也导致了同样的警告:
public abstract class EntityBean {
protected DAOFactory getFactory() {
return DAOFactory.instance(DAOFactory.HIBERNATE);
}
}
我得到的错误(我是同事)有点不同:“Foo实现非API接口栏”。错误突出显示Foo,并且Foo被定义为“public class Foo implements Bar” – mwalling 2010-04-06 17:58:45
T指定了哪里,以及GenericDAO如何定义?错误消息中的规范与方法签名不匹配。 – 2010-04-06 18:26:27
@Steve:看起来这与参数化无关,因为返回非参数化类型的方法也会得到警告。 – Tenner 2010-04-06 18:36:00