Почему IntelliJ советует мне сделать методы package-private?

120
16 марта 2019, 05:10

В коде есть геттеры/сеттеры, IntelliJ все время выдает warning и пишет, что access can be private-package. Но если я сделаю доступ private, то у меня в коде будут ошибки. Почему IntelliJ выдает мне эти предупреждения, она не видит что методы используются вне классов? И как отключить это в настройках?

Answer 1

package-private и private это разные модификаторы доступа.

package-private - позволяет использовать данные методы внутри одного пакета, данный модификатор доступа выставляется по умолчанию, когда отсутствуют иные.

private - в свою очередь, разрешает использовать методы только внутри одного класса.

package mypack;
public class Main {
  void getString(){
    return "String";
  }
  private getPrivateString(){
    return "Check it";
  }
}

В данном случае метод getString доступен в другом классе данного пакета

package mypack;
public class AnotherMain {
  public static void main(){
    Main m = new Main();
    m.getString();
    m.getPrivateString(); // ошибка доступа
  }
}
READ ALSO
java - Использование массивов [закрыт]

java - Использование массивов [закрыт]

Нужно перемножить все числа с индексами в диапазоне от 20 до 30

150
Почему у меня не работают boundary timers (использую Activiti 6)?

Почему у меня не работают boundary timers (использую Activiti 6)?

Не срабатывают boundary timersИспользую Activiti 6

164
Как расширить List в цикле?

Как расширить List в цикле?

Есть массив String, перевожу его в List, добавляю в циклЕсли в первом if срабатывает условие, то необходимо добавить в List символ

135
Поиск и возврат значения по ID (for json)

Поиск и возврат значения по ID (for json)

Что я делаю не так? У меня есть json файлВывод сделал, работает адекватно

160