java - Eclipse 生成的方法参数具有不合理的名称

标签 java eclipse methods parameters naming

我有时会遇到这样的问题:当我使用 Eclipse 函数添加/生成我想要实现的接口(interface)的方法时,这些方法的参数名称“太通用”。

因此,如果它是一个 String 参数,则称为 paramString,如果它是一个 int,则称为 paramInt 等等 - 而不是被称为表达参数语义的东西。

例如,我当前正在实现 javax.portlet.PortletSession 接口(interface)(JSR 286 规范的一部分;我需要自定义实现)。

方法携带如下参数:

public void setAttribute(String paramString, Object paramObject) 
public void setAttribute(String paramString, Object paramObject, int paramInt)

我想要的是这样的:

public void setAttribute(String key, Object value) 
public void setAttribute(String key, Object value, int scope)

有时,方法的生成会按照我想要的方式工作,有时,就像这一次一样,它不会。我认为这与我导入包含我想要实现的接口(interface)的库的方式有关,但也许有人可以更详细地解释该行为?

也许有人可以通过一个具体的例子来解释一下: 我如何导入 JSR 286 规范,如何生成方法来获得我想要的?

非常感谢!

最佳答案

只需自行重命名参数即可。我怀疑参数名称是根据 Eclipse 必须使用的信息生成的 - 如果参数名称不存在于 jar 文件中,则它无法提供它。如果有 portlet jar 文件的调试版本,或者如果您可以告诉 Eclipse JavaDoc 的位置,这可能会有所帮助...但最终,大多数情况下只需手动重命名它们就足够简单了。

作为一个测试,我怀疑如果您声明一个 PortletSession 类型的变量,然后尝试将其与自动完成一起使用,如下所示:

PortletSession session = null; // Doesn't matter for this
session.set <hit ctrl-space here>

我的猜测是,这不会在自动完成中包含参数名称......而在自动实现工作的情况下,它会。这完全取决于 Eclipse 需要处理多少信息。

关于java - Eclipse 生成的方法参数具有不合理的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11373370/

相关文章:

r - 使用不同参数定义 S3 方法的最佳实践

java - Android SQLite 对表列的排序方式不同

java - Eclipse 无法安装断点

java - 为什么 Eclipse 建议我将我的方法设为静态

android - 如何在 AVD Eclipse 上运行和编译 Android 应用程序

Java字符串长度方法

c# - 什么时候使用方法而不是属性来定义类?

java - Cascade All 不删除

java - 异常 ArrayIndexOutOfBoundsException : 0>=0 while retrieving a value from JTable

java - 生产者消费者主线程退出,而其他线程正在运行