Когда у меня есть внутренние классы с частными методами или полями, компилятор должен создавать синтетические методы доступа, защищенные пакетом, чтобы позволить внешнему классу получить доступ к этим частным элементам (и наоборот).
Чтобы этого избежать, я обычно делаю все поля, методы и конструкторы защищенными пакетами, а не частным.
Но как насчет видимости самого класса? Есть ли накладные расходы для
private static class A {
A(){}
}
против
static class A {
A(){}
}
Обратите внимание, что конструктор защищен пакетом в обоих случаях или делает приватное изменение класса таким?