0

我有时会遇到这样的问题:当我使用 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 规范,如何生成方法来获得我想要的?

太感谢了!

4

1 回答 1

1

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

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

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

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

于 2012-07-07T08:06:13.940 回答