Intellij Idea Live Template 同时创建字段和方法
Intellij Idea Live Template to create field and method at same time
当我创建方法使用该字段时,如何自动创建字段变量。我创建了这样的模板:
void $METHOD_NAME$() {
$FIELD_NAME$ = true;
}
当我在方法中键入字段名称(例如 mState
)时,将创建字段为:
private boolean mState = false;
希望有人帮忙。对不起我的错。
鉴于模板的屏幕截图,您还可以使用以下实时模板创建字段:
private boolean $param$ = false;
@Override
public void onBackPressed() {
if ($param$) super.onBackPressed();
android.widget.Toast.makeText(this, "$message$",
android.widget.Toast.LENGTH_SHORT).show();
$param$ = true;
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
$param$ = false;
}
}, 100);
}
其中 $param$ 和 $message$ 是没有任何特殊内容的常规变量。
但是,正如我在对您的问题的评论中所说,我建议将其拆分为几个较小的模板。
考虑将其拆分为:
字段 + 方法只有:
private boolean $param$ = false;
@Override
public void onBackPressed() {
if ($param$) super.onBackPressed();
$param$ = true;
}
然后为消息创建模板:
android.widget.Toast.makeText(this, "$message$", android.widget.Toast.LENGTH_SHORT).show();
最后但同样重要的是,为 postDelayed 创建一个模板:
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
$END$
}
}, $delay$);
注意:$delay$
作为奖励,您甚至可以为其指定默认值或创建预定义值列表以便于使用。
注 2:我将 $param$ = false;
替换为 $END$
。一旦您选择了延迟,这会将您的光标定位在这里。现在您可以在此处手动键入 mState = false,或者您当时在上下文中需要的任何代码。这使模板更加灵活和易于使用。
PS。我想您只想在值为 false 时(在第一次调用时)调用 super.onBackPressed()
。在这种情况下,请改用 if (!$param$)
。
//更新:
为了将新添加的字段与其他字段分组,而不是在其他方法之间的 class 中途某处,重新排列代码
通过菜单:Code -> rearrange code
。
要对此进行自定义,请检查您的排列设置:settings -> code style -> <language> -> arrangement
当我创建方法使用该字段时,如何自动创建字段变量。我创建了这样的模板:
void $METHOD_NAME$() {
$FIELD_NAME$ = true;
}
当我在方法中键入字段名称(例如 mState
)时,将创建字段为:
private boolean mState = false;
希望有人帮忙。对不起我的错。
鉴于模板的屏幕截图,您还可以使用以下实时模板创建字段:
private boolean $param$ = false;
@Override
public void onBackPressed() {
if ($param$) super.onBackPressed();
android.widget.Toast.makeText(this, "$message$",
android.widget.Toast.LENGTH_SHORT).show();
$param$ = true;
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
$param$ = false;
}
}, 100);
}
其中 $param$ 和 $message$ 是没有任何特殊内容的常规变量。
但是,正如我在对您的问题的评论中所说,我建议将其拆分为几个较小的模板。 考虑将其拆分为: 字段 + 方法只有:
private boolean $param$ = false;
@Override
public void onBackPressed() {
if ($param$) super.onBackPressed();
$param$ = true;
}
然后为消息创建模板:
android.widget.Toast.makeText(this, "$message$", android.widget.Toast.LENGTH_SHORT).show();
最后但同样重要的是,为 postDelayed 创建一个模板:
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
$END$
}
}, $delay$);
注意:$delay$
作为奖励,您甚至可以为其指定默认值或创建预定义值列表以便于使用。
注 2:我将 $param$ = false;
替换为 $END$
。一旦您选择了延迟,这会将您的光标定位在这里。现在您可以在此处手动键入 mState = false,或者您当时在上下文中需要的任何代码。这使模板更加灵活和易于使用。
PS。我想您只想在值为 false 时(在第一次调用时)调用 super.onBackPressed()
。在这种情况下,请改用 if (!$param$)
。
//更新:
为了将新添加的字段与其他字段分组,而不是在其他方法之间的 class 中途某处,重新排列代码
通过菜单:Code -> rearrange code
。
要对此进行自定义,请检查您的排列设置:settings -> code style -> <language> -> arrangement