通过公共API导出non_public类型

时间:2010-05-30 04:49:59

标签: java netbeans

我已经在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;
}

3 个答案:

答案 0 :(得分:4)

在这种情况下,非公开类型是您的Node类。您很可能只想将其声明为public class Node,而不仅仅是class Node

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

答案 1 :(得分:0)

这个警告是可以理解的。返回非公共类型的公共方法将难以使用。首先,除非返回类型可见给调用者,否则它将无法将其分配给任何内容。

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

答案 2 :(得分:0)

您的公开方法返回一个Node,从错误中我猜测Node类未被声明为 public ,并且不能被与您相同的类看到方法。
而不是

 public Node returnNode(int index)

这些类只会看到

 public Object returnNode(int index)

要删除警告,请将节点公开