Я не так давно в 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 метода. Что это вообще значит? Как это будет работать?
Ответ
Это называется Анонимный класс. Сразу после вызова конструктора происходил реализация необходимых методов. В случае если класс создаётся на основе интерфейса, то надо будет написать реализацию всех методов. Если же это просто класс, то можно переопределить только нужные методы.
Комментариев нет:
Отправить комментарий