Как стать автором
Обновить

Родилась задачка

Время на прочтение1 мин
Количество просмотров1.1K
Возникла у меня одна задумка, которая может мне приятно облегчить программирование некоторых штук (в реальном проекте).
Но будет ли это работать, я не знал. В результате чего я накидал маленький тест чтобы проверить свои догадки.
После написания этого теста, обнаружил, что этот примерчик может быть вполне интересной и познавательной java-задачкой.

Вот такая задачка получилась:

public class A {

    private static A staticInstance;

    public A() {
        staticInstance = this;
    }

    public void f() {
        System.out.println("A.f() called");
    }

    static class B extends A {

        public B() {
            super();
            throw new RuntimeException();
        }

        public void f() {
            System.out.println("B.f() called");
        }
    }

    public static void main(String[] args) {
        try {
            new B();
        } catch (Throwable t) {
            /*do nothing*/
        }
        if(staticInstance == null) {
            System.out.println("staticInstance is null");
        } else {
            staticInstance.f();
        }
    }
}

Вопрос — что будет выдано в консоль после выполнения этой программки?
  1. staticInstance is null
  2. A.f() called
  3. B.f() called
Теги:
Хабы:
Всего голосов 7: ↑5 и ↓2+3
Комментарии17

Публикации

Истории

Работа

Java разработчик
395 вакансий

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
10 – 11 октября
HR IT & Team Lead конференция «Битва за IT-таланты»
МоскваОнлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн