Преобразование логики Котлина в Java проблема с методом «содержит» - PullRequest
0 голосов
/ 03 февраля 2019

Я пытаюсь использовать следующий фрагмент кода, размещенный на goo.gl / av3tJD

val supportsDistortionCorrection = characteristics.get(

    CameraCharacteristics.DISTORTION_CORRECTION_AVAILABLE_MODES)?.contains(

    CameraMetadata.DISTORTION_CORRECTION_MODE_HIGH_QUALITY) ?: false

Я вижу код в Kotlin, о котором я очень мало знаю,Я хочу преобразовать код в Java.

Я пытаюсь следующее:

Boolean hasNoiseReduction = false;
//cc is my previously defined CameraCharacteristics object
if(cc.get(CameraCharacteristics.DISTORTION_CORRECTION_AVAILABLE_MODES).contains("some string"))hasNoiseReduction = true;

Метод , содержащий , отбрасывает меня,Я не верю, что метод содержит используемый в классе String.

Нужен любой совет

1 Ответ

0 голосов
/ 03 февраля 2019

it.first в этой точке кода относится к первому элементу Pair, созданному выше, содержащему экземпляр CameraCharacteristics.get для этого возвращает IntArray (int[] в терминах Java), а метод contains из стандартной библиотеки Kotlin проверяет, находится ли данная константа в этом массиве.

val cameraCharacteristics: CameraCharacteristics = it.first
val capabilities: IntArray = cameraCharacteristics.get(CameraCharacteristics.REQUEST_AVAILABLE_CAPABILITIES)!!
capabilities.contains(CameraCharacteristics.REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA)

Вы можете проверить это в Java, например, пройдя по элементам массива и посмотрев, найдёте ли вы значение.Примитивная реализация для этого:

CameraCharacteristics cameraCharacteristics = ...;
final int[] capabilities = cameraCharacteristics.get(CameraCharacteristics.REQUEST_AVAILABLE_CAPABILITIES);

boolean contains = false;
for (final int capability : capabilities) {
    if (capability == CameraCharacteristics.REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA) {
        contains = true;
        break;
    }
}

// use result
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...