我一直在尝试为我的项目获取Android应用程序的.java文件中使用的方法。我使用了可在Internet上使用的解析器,但它们只解析用户定义的方法或核心java方法。我想提取也是android框架一部分的方法,就像eclipse在Java outline选项卡中显示方法和变量列表一样。
我尝试过使用javaparser,AST Parser和Java API java.lang.reflect.Method。例如,如果我有一个像以下
这样的java文件public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getResources().getBoolean(R.bool.portrait_only)) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
} else {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
}
public void showLogin() {
registerNumberEditText.setVisibility(View.VISIBLE);
passwordEditText.setVisibility(View.VISIBLE);
loginButton.setVisibility(View.VISIBLE);
textView1.setVisibility(View.INVISIBLE);
txtProg.setVisibility(View.INVISIBLE);
loginStat = true;
}
}
对于上面的代码,我需要代码中使用的方法和参数列表,如
Methods:
OnCreate
getResources
getBoolean
setRequestedOrientation
showLogin
setVisibility
但不是
Methods:
showLogin
感谢您帮助我...
答案 0 :(得分:2)
我认为java reflection API在这种情况下工作正常,请尝试下面的代码:
for (Method m:MainActivity.class.getMethods()){
System.out.println(m.getName());
}