Java 访问任何数组的特定成员
我试图遍历我的arraylist类,以打印出该类中的每个方法。但是,这会一次又一次地重复第一个类的相同方法,而不是遍历类列表并打印每个类的方法。我在做傻事,但我看不见。有人能帮我吗Java 访问任何数组的特定成员,java,Java,我试图遍历我的arraylist类,以打印出该类中的每个方法。但是,这会一次又一次地重复第一个类的相同方法,而不是遍历类列表并打印每个类的方法。我在做傻事,但我看不见。有人能帮我吗 for (int i = 0; i < classes.size(); i++) { for (int j = 0; j < classes.get(i).getDeclaredMethods().length; j++) { System.out.println(classe
for (int i = 0; i < classes.size(); i++) {
for (int j = 0; j < classes.get(i).getDeclaredMethods().length; j++) {
System.out.println(classes.get(i).getDeclaredMethods()[j].getName());
}
}
编辑:
对不起,伙计们,故障是declaredMethods函数。我的错误 我认为你的代码是对的。观察到的效果是,代码将打印重载的方法 考虑以下类别:
public class Foo {
public int bar(){
return 1;
}
public int bar(int i){
return i;
}
}
使用您的代码,它将返回:
酒吧
酒吧
您可以将这些名称添加到一个集合中,并在处理完当前类后打印出该集合
for (int i = 0; i < classes.size(); i++) {
Set<String> methodNames = new HashSet<String>();
for (int j = 0; j < classes.get(i).getDeclaredMethods().length; j++) {
methodNames.add(classes.get(i).getDeclaredMethods()[j].getName());
}
System.out.println(methodNames);
}
你的代码看起来不错。我最好的猜测是你的类arraylist有问题。如果您使用的IDE允许您逐步完成程序,我建议您使用它。否则,我会将print语句放在打印类名或类似内容的j for循环前后。尝试将其存储在引用中,然后像这样打印,可能LinkedIn任务中出现了问题
你能告诉我们初始化的类包含什么吗?看不出任何问题,尽管我可能也很愚蠢,你检查过类本身被正确填充了吗?还有,它的打印方法是什么?如果你换头等舱,他们会变吗?
for (int i = 0; i < classes.size(); i++) {
for (int j = 0; j < classes.get(i).getDeclaredMethods().length; j++) {
Method[] m=classes.get(i).getDeclaredMethods();
System.out.println(m.[j].getName());
}
}]