В общем, есть ли какие-либо преимущества в объявлении частного класса статическим?
В каких случаях я бы хотел использовать один из следующих вариантов вместо другого?
private static class Foo
{
...
}
vs
private class Foo
{
...
}
Если я понимаю правильно, вопрос для частный класс по сравнению с частный статический класс . Все ответы обычно - приблизительно внутренние классы , которые не составляют 100%, относился к тому вопросу. Таким образом, первые вещи сначала:
От geeksforgeeks:
, Поскольку принятый ответ говорит, статичный по сравнению с нестатическим , вложенные классы расходятся в пути и возможности получить доступ к методам/полям вне внешнего класса. Но в случае частных классов B в классе A, у Вас нет этой проблемы, B причины не доступен вне так или иначе.
Теперь, из класса A, для нестатических полей/методов можно всегда обращаться к классу B, или путем высказывания new A.B()
или всего new B()
, и он не имеет значения (никакая компиляция/ошибки периода выполнения), если B частный класс или частный статический класс . В случае статических полей/методов необходимо использовать частный статический класс .
, Кроме того, если Вы хотите получить доступ из B к нестатическому полю A, затем у Вас не может быть B как частный статический класс .
, который я обычно предпочитаю частный статический класс , кроме тех случаев, когда я не могу использовать его как в предыдущем случае, вызвать intellij, даст предупреждения иначе.