Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java IntelliJ是否可以在没有“getter”的情况下生成getter;获得;前缀_Java_Intellij Idea_Getter_Getter Setter - Fatal编程技术网

Java IntelliJ是否可以在没有“getter”的情况下生成getter;获得;前缀

Java IntelliJ是否可以在没有“getter”的情况下生成getter;获得;前缀,java,intellij-idea,getter,getter-setter,Java,Intellij Idea,Getter,Getter Setter,IntelliJ具有生成Java getter的酷特性。例如,对于字段私有最终字符串foo,它将生成一个gettergetFoo() 是否有任何方法可以配置IntelliJ以String foo()格式生成getter?我主要处理不可变对象,更喜欢这种语法。如果我理解正确,您现在无法在idea中修改getter/setter 好的,现在修复版本是14.1,从idea的这个版本,你可以直接在Alt Insert菜单中创建和选择getter/setter模板。好问题!为了澄清@Danny Dan在I

IntelliJ具有生成Java getter的酷特性。例如,对于字段
私有最终字符串foo
,它将生成一个getter
getFoo()


是否有任何方法可以配置IntelliJ以
String foo()
格式生成getter?我主要处理不可变对象,更喜欢这种语法。

如果我理解正确,您现在无法在idea中修改getter/setter


好的,现在修复版本是14.1,从idea的这个版本,你可以直接在
Alt Insert
菜单中创建和选择getter/setter模板。

好问题!为了澄清@Danny Dan在IntelliJ 15发布后的回答

要设置此选项,请执行以下操作:
  • Alt+Insert
  • 选择吸气剂
  • 从RHS上的“…”打开模板配置
  • 从LHS创建一个新模板-参见下面的示例
  • 确定并选择新模板
示例模板:
fluent getter
你为什么要这么做? 结帐:

简单而有效的对象设计方法使价值对象忠实于无处不在的语言。使用
getValuePercentage()
是一种计算机技术声明,但
valuePercentage()
是一种流畅的人类可读语言表达


以下是一些基于@Ed.的稍加改进的模板:

fluent getter: 流畅的设定者:
我希望将
isXxx
用于
boolean
(例如
isConnected()
),如果您需要此模板,则模板将是:

#if($field.modifierStatic)
static ##
#end
$field.type ##
#set($name = $StringUtil.sanitizeJavaIdentifier($helper.getPropertyName($field, $project)))
#if ($field.boolean && $field.primitive)
#set($name = $StringUtil.capitalizeWithJavaBeanConvention($StringUtil.sanitizeJavaIdentifier($helper.getPropertyName($field, $project))))is##
#else
  ##
#end
${name}() {
  return $field.name;
}

不确定是否可能,但您所需的语法是违反规则的。@LuiggiMendoza这些被称为“流畅访问器”,现在使用得越来越多。Lombok甚至支持以开箱即用的方式生成访问器。@boristesspider-TIL。遗憾的是,我不确定这些访问器是否由依赖于诸如Spring或JSF或诸如表达式语言之类的技术的框架支持。@LuiggiMendoza是的,我知道。如今,许多框架倾向于字段访问,而不是方法命名约定——特别是随着注释的出现。这取决于豆子的操作。顺便说一句,这是为了使Java更符合。@Hbf,如果您对值类使用类似的东西,您可以在编译时生成getter,而不是使用IDE,并且您可以指定您想要的任何方法名称。answer14.1中添加的最新信息在EAP中,但还没有完全发布。这个选项在clion中不可用?我很难找到它,但最终找到了它,制作了一个短视频--
public ##
#if($field.modifierStatic)
  static ##
#end
$field.type ##
${field.name}() {
return ##
#if (!$field.modifierStatic)
this.##
#else
  $classname.##
#end
$field.name;
}
#set($paramName = $helper.getParamName($field, $project))
public ##
#if($field.modifierStatic)
  static ##
#end
void ##
${field.name}($field.type $paramName) {
#if ($field.name == $paramName)
  #if (!$field.modifierStatic)
  this.##
  #else
    $classname.##
  #end
#end
$field.name = $paramName;
}
#if($field.modifierStatic)
static ##
#end
$field.type ##
#set($name = $StringUtil.sanitizeJavaIdentifier($helper.getPropertyName($field, $project)))
#if ($field.boolean && $field.primitive)
#set($name = $StringUtil.capitalizeWithJavaBeanConvention($StringUtil.sanitizeJavaIdentifier($helper.getPropertyName($field, $project))))is##
#else
  ##
#end
${name}() {
  return $field.name;
}