Страницы

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

суббота, 13 октября 2018 г.

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

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


Ответ

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

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

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