【问题标题】:Android:The class file unmatch the source codeAndroid:类文件不匹配源代码
【发布时间】:2015-04-04 09:25:59
【问题描述】:

我正在挖掘 Android 源代码,有些东西让我很困惑。

例如ListView的源码:

http://i.stack.imgur.com/4b86B.png

(对不起,我的声誉不佳)

在源代码中,我们可以看到有一个方法resetList(),但是在大纲视图中,它不见了。

当我按 F3 时,“当前文本选择无法在编辑器中打开”出来。

我也通过反射机制打印方法,但是方法resetList()仍然丢失。

谁能告诉我为什么?

对于@CommonsWare 的回答:

package com.other;

public class A {

    void method(){} 

    private void privateMethod(){}  

    public void publicMethod(){}
}

public class Main {

    public static void main(String[] args) {
        Class aClass = A.class;
        A a = new A();
        Method[] ms = aClass.getDeclaredMethods();

        for (Method m : ms)
            System.out.println(m);
    }
}

还有输出:

void com.other.A.method()

private void com.other.A.privateMethod()

public void com.other.A.publicMethod()

【问题讨论】:

    标签: java android eclipse


    【解决方案1】:

    我们可以看到有一个方法resetList(),但是在大纲视图中,它不见了。

    resetList() 不是public 方法。这是一个包私有的方法。

    我也通过反射机制打印方法,但方法 resetList() 仍然丢失。

    大概您使用的任何技术都仅限于public 方法。

    【讨论】:

    • 在发这个之前我做了一个认真的测试,我从源代码打包了一个jar文件,resetList()刚刚出现在大纲视图中。而且,对于你的第二点,试试Class .getDeclaredMethods(),它将返回的方法不仅限于public.Try。
    • 我明白了,看看link
    猜你喜欢
    • 1970-01-01
    • 2020-11-03
    • 2020-12-12
    • 2019-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-28
    • 1970-01-01
    相关资源
    最近更新 更多