如何在Android Studio中自动生成getter和setter时生成注释

时间:2015-06-10 10:03:09

标签: java android intellij-idea android-studio

我想在自动生成getter和setter时生成注释

Android Studio:

/**
 * username
 */
private String name;

public String getName() {
    return name;
}

我想要:

/**
 * username
 */
private String name;

/**
 * Get username
 * @return username
 */
public String getName() {
    return name;
}

4 个答案:

答案 0 :(得分:5)

我知道这个帖子已经接受了答案,但我遇到了同样的问题,虽然我也会试一试。

正如Mark解释了如何create you own custom settings on the getters and setters options,我尝试将Intellij's settings同时用于getterssetters,并按照我想要的方式对其进行了自定义。

以下是Getter模板的样子:

/**
*@return Gets the value of $field.name and returns $field.name 
*/
public ##
#if($field.modifierStatic)
  static ##
#end
$field.type ##
#set($name = $StringUtil.capitalizeWithJavaBeanConvention($StringUtil.sanitizeJavaIdentifier($helper.getPropertyName($field, $project))))
#if ($field.boolean && $field.primitive)
  #if ($StringUtil.startsWithIgnoreCase($name, 'is'))
    #set($name = $StringUtil.decapitalize($name))
  #else
    is##
#end
#else
  get##
#end
${name}() {
  return $field.name;
}

为了便于说明,我使用$field.name作为注释值,并使用常规注释结构在方法生成开始之前放置值。

例如:

    /**
    *@return Gets the value of $field.name and returns $field.name 
    */

这就是我的Setter模板的样子:

/**
* Sets the $field.name
  You can use get$StringUtil.capitalizeWithJavaBeanConvention($StringUtil.sanitizeJavaIdentifier($helper.getPropertyName($field, $project)))() to get the value of $field.name
*/
#set($paramName = $helper.getParamName($field, $project))
public ##
#if($field.modifierStatic)
  static ##
#end
void set$StringUtil.capitalizeWithJavaBeanConvention($StringUtil.sanitizeJavaIdentifier($helper.getPropertyName($field, $project)))($field.type $paramName) {
  #if ($field.name == $paramName)
    #if (!$field.modifierStatic)
      this.##
    #else
      $classname.##
    #end
  #end
  $field.name = $paramName;
}

$field.name的值与getter中的值相同。 您始终可以通过这种方式自定义注释结构,并且如果需要,还可以使用$classname.##等其他属性。

这只是我如何做comments enabling in Android Studio when doing a generate getters and setters for the the fields.

的一个小例子

希望这可以帮助将来的某个人。祝你好运。

答案 1 :(得分:1)

创建自定义setter& amp;通过功能请求IDEA-28206 Allow customization of generated getter/setter在IntelliJ IDEA v14.1(特别是构建141.177)中添加了getter模板。我不知道该更改是否已合并到Android Studio分支中。

使用(新)功能,当您触发插入getter / setter意图时,对话框允许您选择要使用的模板:

enter image description here

您可以点击浏览按钮enter image description here来创建新模板。它使用Velocity模板语言。您可以创建一个包含所需注释的模板。在机票中,有人有posted their custom setterticket to document the feature仍有待处理。

最后,有一个开放的功能请求(IDEABKL-4910 Javadocs for getters/setters),以便在生成setter和getter时自动包含Javadoc。然而,这是积压的,现在IDEA-28206已经实施,我怀疑这会得到任何关注。

答案 2 :(得分:0)

我相信这在java中是不可能的,但您可以通过以下步骤更改注释/代码模板。

  1. 使用字段
  2. 创建一个类
  3. 点击Alt + Shift + S
  4. 选择选项Generate Getters and Setters ..
  5. 选中您创建的字段
  6. 的复选框
  7. 在对话框底部找到链接代码模板,然后单击该链接。
  8. 现在,您可以启用项目特定设置选项,并根据需要更改注释/代码模板。
  9. 点击“申请并确认”
  10. 选择选项生成方法注释,然后单击“确定”。现在,将根据模板更改创建带有注释的getter和setter。
  11. 请尝试使用上述评论归档您的想法。

答案 3 :(得分:0)

Android Studio不支持(至少在1.2版本中) 您可以下载插件(首选项/插件),例如JavaDoc,它在"生成..." 菜单下添加其他选项,并允许您生成javadoc选定或所有字段/方法的注释