Это анонимный класс? Как это работает?

289
18 июня 2017, 15:46

Я не так давно в java и вот сегодня увидел такую штуку. Создаем обьект класса и после него сразу открываем фигурные скобки... и в них пишем код. Вот так

private final CameraDevice.StateCallback mStateCallback = new CameraDevice.StateCallback() {
    @Override
    public void onOpened(@NonNull CameraDevice cameraDevice) {
        // This method is called when the camera is opened.  We start  camera preview here.
        mCameraOpenCloseLock.release();
        mCameraDevice = cameraDevice;
        createCameraPreviewSession();
    }
    @Override
    public void onDisconnected(@NonNull CameraDevice cameraDevice) {
        mCameraOpenCloseLock.release();
        cameraDevice.close();
        mCameraDevice = null;
    }
    @Override
    public void onError(@NonNull CameraDevice cameraDevice, int error)   {
        mCameraOpenCloseLock.release();
        cameraDevice.close();
        mCameraDevice = null;
        Activity activity = getActivity();
        if (null != activity) {
            activity.finish();
        }
    }
};

определен инстанс и сразу скобки и внутри переопределены 4 метода. Что это вообще значит? Как это будет работать?

Answer 1

Это называется Анонимный класс. Сразу после вызова конструктора происходил реализация необходимых методов. В случае если класс создаётся на основе интерфейса, то надо будет написать реализацию всех методов. Если же это просто класс, то можно переопределить только нужные методы.

READ ALSO
Android разработка, URI is not registered (Settings | Languages & Frameworks

Android разработка, URI is not registered (Settings | Languages & Frameworks

В общем, для многих, скорее всего, этот вопрос будет глупым, но для меня сейчас он является проблемойНаписал я кот, т

458
Test Data Types Java

Test Data Types Java

Доброго времени сутокСтолкнулся в начале обучения с такой проблемой

257
вывод Яндекс карты - много городов

вывод Яндекс карты - много городов

Доброго дня, подсобите советом: на сайте много страниц с разными городами на каждой странице города нужно выводить карту с центрированием...

267