Как вызвать один конструктор из другого?

При необходимости вызова одного конструктора из другого мы можем сделать это используя this() и передав те параметры, которые нужны вызываемому конструктору. Есть условия, которые необходимо соблюдать в таком случае, а именно:

  1. вызов this() должен быть первой операцией;
  2. второй раз вызывать в конструкторе this() запрещено.

Читать далее Как вызвать один конструктор из другого?

Вместо админки на wordpress белый экран

DeadWebsite    Так бывает, что после переезда с локального сервера на хостинг блог функционирует нормально, но вместо страницы входа в админ-панель Вы получаете чистый лист в виде белого экрана. Это довольно неприятная картина для начинающего администратора, так как проблем может быть несколько, а никаких ошибок, подсказывающих в каком направлении двигаться для решения проблемы, нет.
Такое поведение чаще всего возникает когда имя сайта на локальном сервере и у хостинга различались. Всё усугубляется если Вы ещё и устанавливали плагины. Читать далее Вместо админки на wordpress белый экран

Что такое статический блок и статическая инициализация в Java?

Статические блоки и статическая инициализация используются для инициализации статических полей в Java. Мы объявляем статический блок в тот момент, когда хотим проинициализировать статические поля в классе.

Статический блок выполняется только один раз, при загрузке класса загрузчиком.

Статический блок выполняется до вызова конструктора.

Также можно сказать что статические поля и методы принадлежат классу, нестатические — объекту.

Пример синтаксиса ниже: Читать далее Что такое статический блок и статическая инициализация в Java?

Отправка email из программы java по протоколу SMTP

SMTP (Simple Mail Transfer Protocol) является протоколом передачи электронной почты по сетям tcp/ip. Он включает в себя набор несложных правил, с помощью которых происходит процесс общения почтовых клиента и сервера. Клиент подключается к почтовому серверу по 25 порту, далее происходит примерно такой диалог:

Server: (ожидает соединения)
Client: (Подключается к порту 25 сервера)
Server:220 mail.company.tld ESMTP CommuniGate Pro 5.1.4i is glad to see you! Читать далее Отправка email из программы java по протоколу SMTP

Можно ли наследовать внутренние классы?

Да. Внутренние классы можно расширять. В плане наследования классов и реализации интерфейсов у них нет проблем.

 

Можно ли наследовать анонимные внутренние классы?

Описывая анонимный класс мы уже наследуемся от какого-то класса или реализуем какой-либо интерфейс. К анонимным классам напрямую нельзя применить слова extends или implements, но ведь никто не мешает заранее подготовиться и расширить нужный интерфейс, который будем реализовывать с помощью анонимного класса. Пример в коде ниже.

 

Можно ли переопределять внутренние классы?

В начале нужно четко понять что же мы хотим сделать. Логика следующая:[
1)Есть некий класс A;
2)Есть некий класс B, внутренний для класса A;
3)Мы хотим создать класс C, наследующийся от класса А и ещё раз описать в классе С класс В.

 

Из примера видно что повторное описание внутреннего класса — это не более чем работа с пространством имён. Итог — внутренний класс, подобно методам, переопределить нельзя.

Какие ограничения есть у локальных классов?

Вначале вспомним что такое локальный класс. Это класс, описанный в блоке кода, то есть, по-простому — между кавычек {}. Наиболее часто эти кавычки являются телом метода. Но могут они быть и просто блоком, статическим блоком, телом if-ов, циклов и т.д.
Локальный класс наделён особенностями внутренних классов, но имеет отличительные черты, а именно:
1)он имеет доступ только к финальным полям и аргументам обрамляющего метода, а также ко всем полям обрамляющего класса, в том числе приватным и статическим;
2)локальный класс виден и может создаваться только в блоке, в котором описан;

3)у локального класса не ставиться модификатор доступа;
4)не может иметь статических полей, методов, классов (за исключением финальных);
5)локальный класс, объявленный в статическом блоке может обращаться только к статическим полям внешнего класса.

 

Но! Начиная с Java8 мы можем обращаться в локальных классах к не финальным локальным переменным, если они не были изменены до момента инициализации класса. Также теперь стало возможным обращение к не финальным параметрам метода.

 

Может ли анонимный внутренний класс содержать статические методы?

Нет. У Анонимных внутренних классов, как и у внутренних классов не может быть статических полей, методов. Это вам подтвердит IDE, если вы попытаетесь запустить в ней код ниже.

 

Можно ли создать объект внутреннего класса, если у внешнего класса только private конструктор?

Имея подобный код

Напрямую, в другом классе (вне обрамляющего), конечно, создать объект InnerClass следующим способом не получится:

Но! Что если у нас есть метод, возвращающий экземпляр PrivateConst:

В этом случае приватный конструктор нам не помеха для создания объекта InnerClass. Так же мы без проблем сможем создавать его в методах и в других внутренних классах, принадлежащих PrivateConst. Ответ — можно, если каким-либо способом нам удастся получить объект обрамляющего класса.

Так же можно по хардкору пройтись рефлексией, выдернуть скрытый коструктор и уже с его помощью добыть объект класса. Попахивает изнасилованием, но работает.