java - 我想在android中获取类的字段名称

标签 java android reflection

我想获取android中类的字段名。为此,我正在使用这段代码

public static String checkForNull(Object obj) {
    Class cls = obj.getClass();
    Field fields[] = cls.getDeclaredFields();
    for (Field field : fields) {
        Object object = null;
        try {
            object = field.get(obj);
        } catch (IllegalAccessException e) {
            return "The field " + field.getName() + " of " + cls.getSimpleName() + " is not accessible!";
        }
        if (object == null) {
            return "The field " + field.getName() + " of " + cls.getSimpleName() + " is null!";
        } else if (object instanceof String) {
            String string = (String) object;
            if (string.equals("")) {
                return "The field " + field.getName() + " of " + cls.getSimpleName() + " is empty!";
            }
        }
    }
    return null;
}

但此代码返回类字段的通用名称,如 a、b、c 等。此代码在 netbeans 中运行良好。

最佳答案

看起来像是经过混淆的名称,很可能您有 ProGuard 的默认设置并且 Android SDK 执行一些代码混淆,请参阅 https://developer.android.com/studio/build/shrink-code.html

如果您想查看原始字段名称,您应该完全或针对这个特定的类/包禁用混淆。

关于java - 我想在android中获取类的字段名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44998554/

相关文章:

java - 如何在 Java Swing 中同步两个 View

java - 将 xml 输入流式传输到 sax 解析器,如何打印流式传输的 xml?

java - 如何在java中创建合成字段?

Java - 中缀计算器的数据结构

java - 带有来自原始资源的自定义铃声的 RingtonePreference

java - SOAP 错误 : Axis 2 AbstractMethodError

android - Android 中多个 Google 数据 API 的单个 Google 帐户 authtoken

java - 如何关闭横向模式只是为了正常布局?

java - Java中的“特殊属性/属性”而不是getter/setter,以避免样板代码

java - 如何从 object.getClass().getDeclaredField ("fieldname").getGenericType(); 返回的 List<T> 获取 typeArguments