首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用“包含”方法将Kotlin逻辑转换为Java问题

用“包含”方法将Kotlin逻辑转换为Java问题
EN

Stack Overflow用户
提问于 2019-02-03 10:07:36
回答 1查看 96关注 0票数 0

我正在尝试使用在goo.gl/av3tJD上发布的以下代码

代码语言:javascript
复制
val supportsDistortionCorrection = characteristics.get(

    CameraCharacteristics.DISTORTION_CORRECTION_AVAILABLE_MODES)?.contains(

    CameraMetadata.DISTORTION_CORRECTION_MODE_HIGH_QUALITY) ?: false

我看到密码在Kotlin里面,我对它知之甚少。我想把代码转换成Java。

我正在尝试以下几点:

代码语言:javascript
复制
Boolean hasNoiseReduction = false;
//cc is my previously defined CameraCharacteristics object
if(cc.get(CameraCharacteristics.DISTORTION_CORRECTION_AVAILABLE_MODES).contains("some string"))hasNoiseReduction = true;

包含的方法将我抛出一边。我不相信字符串类中使用的方法包含。

任何建议都是需要的

EN

回答 1

Stack Overflow用户

发布于 2019-02-03 10:19:30

代码中的it.first指的是上面创建的Pair的第一个元素,其中包含一个CameraCharacteristics实例。get返回一个IntArray ( Java中的int[]),Kotlin标准库中的contains方法检查给定的常量是否在该数组中。

代码语言:javascript
复制
val cameraCharacteristics: CameraCharacteristics = it.first
val capabilities: IntArray = cameraCharacteristics.get(CameraCharacteristics.REQUEST_AVAILABLE_CAPABILITIES)!!
capabilities.contains(CameraCharacteristics.REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA)

您可以在Java中检查这一点,例如,遍历数组元素并查看是否找到了值。这是一个原始的实现:

代码语言:javascript
复制
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
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54501796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档