Страницы

Поиск по вопросам

понедельник, 9 декабря 2019 г.

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

#java #android


Я не так давно в 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 метода. Что это вообще
значит? Как это будет работать?
    


Ответы

Ответ 1



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

Комментариев нет:

Отправить комментарий