2012-07-07 79 views
0

我有时运行的问题是,当我使用Eclipse函数添加/生成接口的方法时,我想实现这些方法的参数名称只是“过于通用” 。具有不合理名称的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规范,如何生成获取我想要的方法?

非常感谢!

+0

所以,这就是我所做的:我下载了JSR 286规范。并将源代码导入到Eclipse中。然后我引用该源代替包含仅包含类文件的JAR。那就是诀窍 - 不确定是否有其他方式,但似乎您需要来源 - 至少在这里是这种情况。 – AnNaSF 2012-07-07 08:16:27

+0

有谁知道是否有一种方法来重新生成一堆类的所有方法签名?否则,我不得不做这个变化手动知道这将是非常恼人的:( – AnNaSF 2012-07-07 08:17:59

回答

1

只需自己重新命名参数即可。我怀疑参数名是根据Eclipse必须处理的信息生成的 - 如果参数名不存在于jar文件中,它就不能提供它。如果有portlet jar文件的调试版本,或者您可以告诉Eclipse JavaDoc的位置,这可能会有所帮助......但最终,它很简单,只需手动重新命名即可。

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

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

我的猜测是,这不会在自动完成...中包含参数名称,而在自动执行工作的情况下,它将会。这关系到Eclipse需要处理多少信息。

+0

)说实话,我喜欢我的方式与导入源不仅仅是它handish。 – AnNaSF 2012-07-07 08:45:23

+0

@ user1090608:当然,你可以哪里更好 - 但我' d视图将JavaDoc等视为更具相关性,而不仅仅是自动生成的参数名称。 – 2012-07-07 08:46:25

相关问题