Java 通过公共API导出非公共类型

Java 通过公共API导出非公共类型,java,netbeans,Java,Netbeans,我已经用Netbeans编写了这段代码,但它将显示此方法名称的警告,请您帮助我了解它显示此警告的内容好吗?谢谢 public Node returnNode(int index) throws IndexOutOfBoundsException { if (index < 0 || index > size) { throw new IndexOutOfBoundsException(); } else { for (int i

我已经用Netbeans编写了这段代码,但它将显示此方法名称的警告,请您帮助我了解它显示此警告的内容好吗?谢谢

  public Node returnNode(int index) throws IndexOutOfBoundsException {

    if (index < 0 || index > size) {
        throw new IndexOutOfBoundsException();
    } else {

        for (int i = 0; i < index; i++) {
            pointer = pointer.getNext();
        }
    }
    return pointer;
}
public Node returnNode(int index)抛出IndexOutOfBoundsException{
如果(索引<0 | |索引>大小){
抛出新的IndexOutOfBoundsException();
}否则{
对于(int i=0;i
这个警告是可以理解的。返回非公共类型的公共方法将很难使用。首先,除非返回类型对调用方可见,否则它将无法将其分配给任何对象


您可能应该更改方法或返回类型的可见性。

在本例中,非公共类型是您的
节点。很可能您只想将其声明为
公共类节点
,而不只是
类节点


Netbeans似乎非常关注大型项目。在编写将由外部代码使用的库包的场景中,此警告非常有意义。如果您正在编写一个小型的独立应用程序,那么将所有类的可见性设置为
public

没有什么害处。您的public方法返回一个节点,从错误中我猜节点类没有声明为public,并且不能被与您的方法相同的类看到。
所以不是

 public Node returnNode(int index)
这些课程只会看到

 public Object returnNode(int index)
要删除警告,请将节点公开

“指针”是您的类的成员吗?