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

时间:2012-07-07 08:01:13

标签: java eclipse methods parameters naming

我有时遇到的问题是,当我使用Eclipse函数添加/生成接口的方法时,我想实现这些方法的参数名称只是“过于通用”。

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

例如,我目前正在实现javax.portlet.PortletSession接口(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)

有时,方法的生成按照我想要的方式工作,有时,就像这次,它没有。我假设这与导入我想要实现的接口的库的方式有关,但也许有人可以更详细地解释一下这个行为?

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

非常感谢你!

1 个答案:

答案 0 :(得分:1)

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

正如测试一样,我怀疑如果你声明一个PortletSession类型的变量,然后尝试将它与自动完成一起使用,就像这样:

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

我的猜测是赢了在自动完成中包含参数名称...而在自动实现工作的情况下,它会。这完全取决于Eclipse必须使用多少信息。