为什么eclipse为方法生成参数名称为arg0,arg1,arg2 ....

时间:2011-06-10 08:39:13

标签: eclipse methods arguments

当我尝试访问某个类的方法时; eclipse获取该方法,但该方法中的参数被arg0,arg1,arg2 ...

取代

实施例: -

假设我在名为ReadFile.java的某个类中使用了此方法

@Override
public int readXXX(int start, int end, String xxx) throws IOException {
    return 0;
}

当我尝试从类的实例访问该方法时,它显示如下:

readFile.readXXX(arg0, arg1, arg2);

很难确定我应该在论证中传递什么。 java方法也会发生同样的事情。即,当我实现接口时,将生成所有方法,但该方法中的参数是arg0,arg1 .....

有什么设置可以防止这种情况吗?

我正在使用Eclipse Galelio。

6 个答案:

答案 0 :(得分:18)

Eclipse无法解决参数,因为它无法找到源或javadoc附件。

确保您的来源已附加。

要检查,请单击方法调用readXXX并按F3,这将打开方法声明。如果未附加源,Eclipse将说“Source not found”并允许您“Attach Source ...”。

答案 1 :(得分:3)

问题是您的类文件缺少嵌入其中的调试信息。在为项目构建AST时,JDT不会重新分析源文件或依赖项的javadoc,因此它不知道参数的名称是什么,即使您能够打开类并清楚地看到什么是方法名称。

为了纠正这个问题,您需要在启用调试信息的情况下重新编译类文件,这会使类文件变得更大,但除非您正在为内存约束设备开发,否则您应该没问题。

答案 2 :(得分:3)

任何人遇到相同问题,请尝试执行项目>清理,这将删除旧的类文件,Eclipse这次将在调试模式下重新编译它们。在Indigo 3.7.2为我工作

答案 3 :(得分:1)

我通过转到首选项来解决这个问题 Java /内容辅助
在“排序和过滤”下的这个页面上,我取消选中“隐藏在调用上下文中不可见的提议”而不是在自动完成中看到(arg0,arg1,arg2)等我看到(catalog,schemaPattern,tableNamePattern ...)
我正在使用在Eclipse Mars 4.5.1平台上运行的Spring Tools Suite 3.7.2。

答案 4 :(得分:0)

对于像我这样试图应用我们的同事建议的人而且很遗憾没有工作,请尝试在Window中检查选项“将变量属性添加到生成的类文件(由调试器使用)” - >偏好 - > Java +编译器。

完成后,尝试再次构建项目。

干杯。

答案 5 :(得分:0)

link帮助我解决了这个问题。

1)右键单击你的android.jar并选择Properties。

enter image description here

2)选择Java Source Attachment。输入源目录位置(您也可以使用外部文件夹...浏览目录)并单击“应用”。

enter image description here

代码名称与以下版本号相匹配,以及为方便起见而提供的API级别和NDK版本:

enter image description here