如何从似乎动态匹配的对象中获取键。 JAVA 可打包

How to get the keys from an object that seems to be matched dynamically. JAVA parcelable

我在解析这个对象时遇到问题,它似乎完全由一个字符串组成,然后动态匹配到它的键。如果我尝试 toString() 这个对象,它只返回由 space 分隔的值(没有键)。这是 SignalStrength java class。任何帮助,将不胜感激。我寻找钥匙的原因是在特定手机上索引似乎不同。

SignalStrength class (source code) 有大约一半的字段 getters 用 @hide 注释。这意味着它们不能像其他字段一样在 SDK 中使用 get() 公开访问,因此 android studio 不会显示这些方法。

您有 2 个选择

  1. 使用 toString() 为所有字段提供值,并将其拆分以便您可以按索引访问值,就像您已经在做的那样。

  2. 通过反射获取字段值。例子

    Field field = null;
    try {
        field = SignalStrength.class.getDeclaredField("mLteRssnr");
        if (field.getType().isAssignableFrom(int.class)) {
            field.setAccessible(true);
            int lteRssnr = (int) field.get(signalStrength); // pass the instance of SignalStrength here.
    
        }
    } catch (NoSuchFieldException e) {
        e.printStackTrace();
    }