微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何通过字符串变量

如何解决如何通过字符串变量

编辑:为澄清起见,我想获取属性,而不是属性名称。我知道属性名称,但是我需要通过包含属性名称的字符串来访问属性。我正在导入一个API,该API具有其他供应商属性(不是标准文档或SDK的一部分),我试图访问该API的值。

嗨,我有以下代码

                String mykey = "SCALER_AVAILABLE_STREAM_CONfigURATIONS";
                 mystring.append(characteristics[mykey]);

characteristics是Cameracharacteristics对象的一种,而SCALER_AVAILABLE_STREAM_CONfigURATIONS是其属性。如何通过Java中的变量(使用Android Stuidio)访问对象的属性

日志:

incompatible types: String cannot be converted to int
                         mystring.append(characteristics[mykey]);

工具提示信息给了我Array type expected; found: 'android.hardware.camera2.Cameracharacteristics'

解决方法

您可以使用获取声明的字段函数

     ClassDemo c = new ClassDemo();
     Class cls = c.getClass();

     // field long l
     Field lVal  = cls.getDeclaredField("l")

返回一个Field对象,该对象反映了指定的声明字段 此Class对象表示的类或接口。名字 参数是一个字符串,它指定所需的简单名称 字段。

文档:https://developer.android.com/reference/java/lang/Class#getDeclaredField(java.lang.String)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。