java - Android Studio自动生成getters和setters时如何同时生成注释

标签 java android intellij-idea android-studio

自动生成getters和setters的时候我也想生成注释

安卓工作室:

/**
 * username
 */
private String name;

public String getName() {
    return name;
}

我要:

/**
 * username
 */
private String name;

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

最佳答案

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

正如 Mark 所解释的如何在 getter 和 setter 选项上创建您自己的自定义设置,我尝试对这两个 getter 使用 Intellij 的设置 > 和 setters 并按照我想要的方式对其进行自定义。

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.##

这只是一个小示例,说明了我如何在为字段生成 getter 和 setter 时在 Android Studio 中启用评论。

希望这对以后的人有所帮助。祝你好运。

关于java - Android Studio自动生成getters和setters时如何同时生成注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30753165/

相关文章:

android - 如何对 Github 上的 Android 项目进行版本控制以及不同团队成员使用 intellij 和 eclipse IDE?

java - Gradle 构建找不到包 'java.net.http'

java - 创建大宝库集合时出现奇怪的 OutOfMemory

Android 模拟器没有检测到正确的屏幕尺寸?

android - CursorAdapter ListView刷新

android - 如何在 AndroidManifest.xml 中应用主题?

java - 更新到 IntelliJ 2017.1 导致打印 JAVA_TOOL_OPTIONS

java - XPath//*[@href] 不仅仅抓取链接

java - 方法返回零

java - smoothScrollTo(position) 滚动到底部而不是 RecyclerView 中的目标位置