这里我将使用反射打印类中的所有方法,因此在正常的JAVA
程序中它将打印。但在Android
布局中,它只显示一种方法:
public static void main() throws Exception{
Log.i("Ramu","I am here displayM ");
Class o =Class.forName("android.view.AbsSavedState");
Method M[]=o.getMethods();
for( i=0;i<M.length;i++)
methodname = M[i].getName();
Listview.your_array_list.add(methodname);
Listview.your_array_list.add(methodname);
Log.i("Ramu","methode name "+ M[i].getName());
//System.out.println(M[i].getName());
}
答案 0 :(得分:1)
您的循环结束了下一行声明,并且您在循环完成后仅在最终索引值处打印方法名称。尝试使用大括号,这将解决问题。检查以下代码
public static void main() throws Exception{
Log.i("Ramu","I am here displayM ");
Class o =Class.forName("android.view.AbsSavedState");
Method M[]=o.getMethods();
for( i=0;i<M.length;i++){
methodname = M[i].getName();
Listview.your_array_list.add(methodname);
Listview.your_array_list.add(methodname);
Log.i("Ramu","methode name "+ M[i].getName());
}
//System.out.println(M[i].getName());
}
答案 1 :(得分:0)
您已忘记放置括号,表示您未获得预期的输出:
Class o = Class.forName("android.view.AbsSavedState");
Method M[] = o.getMethods();
for (int i = 0; i < M.length; i++) {
methodname = M[i].getName();
Listview.your_array_list.add(methodname);
Log.i("Ramu", "method name " + methodname);
}
答案 2 :(得分:0)
你忘了{ }
for loop
的家伙,请将其保留在{ }
然后尝试
for( i=0;i<M.length;i++)
{
methodname = M[i].getName();
Listview.your_array_list.add(methodname);
Log.i("Ramu","methode name "+ M[i].getName());
}