我有时遇到的问题是,当我使用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 :(得分:1)
只需自己重命名参数即可。我怀疑参数名称是根据Eclipse必须使用的信息生成的 - 如果参数名称不在jar文件中,它就无法提供它。如果有一个portlet jar文件的调试版本,或者你可以告诉Eclipse JavaDoc的位置,这可能会有所帮助......但最终,它很简单,只需手动重命名它们,大多数时间。
正如测试一样,我怀疑如果你声明一个PortletSession
类型的变量,然后尝试将它与自动完成一起使用,就像这样:
PortletSession session = null; // Doesn't matter for this
session.set <hit ctrl-space here>
我的猜测是赢了在自动完成中包含参数名称...而在自动实现工作的情况下,它会。这完全取决于Eclipse必须使用多少信息。