экспорт не публичного типа через публичный API - PullRequest
2 голосов
/ 30 мая 2010

Я написал этот код в 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 ]

4 голосов
/ 30 мая 2010

Непубличный тип - это ваш Node класс в этом случае. Скорее всего, вы просто хотите объявить его как public class Node вместо class Node.

Netbeans, похоже, довольно сосредоточен на крупных проектах. В сценарии, где вы пишете пакет библиотеки, который будет использоваться внешним кодом, это предупреждение имеет большой смысл. Если вы пишете маленькое автономное приложение, то установка видимости всех ваших классов на public.

не причинит никакого вреда.
0 голосов
/ 30 мая 2010

Ваш метод public возвращает Node, из-за ошибки я бы предположил, что класс Node не объявлен public и не может быть виден теми же классами, что и ваш метод.
Так что вместо

 public Node returnNode(int index)

эти классы увидят только

 public Object returnNode(int index)

Чтобы удалить предупреждение, сделайте Узел класс public .

0 голосов
/ 30 мая 2010

Это предупреждение понятно. Открытый метод, который возвращает непубличный тип, будет трудно использовать. Для начала, если тип возвращаемого значения видимый для вызывающей стороны, он не сможет присвоить его чему-либо.

Возможно, вам следует изменить видимость либо метода, либо типа возвращаемого значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...