您可以在Eclipse中创建各种Java代码模板

窗口>首选项> Java >编辑器>模板

e.g.

Sysout扩展为:

System.out.println(${word_selection}${});${cursor}

您可以通过输入sysout加上CTRL+SPACE来激活它

您目前使用哪些有用的Java代码模板?包括它的名称和描述,以及为什么它很棒。

我正在寻找一个模板的原始/新颖的使用,而不是一个内置的现有功能。

创建Log4J日志记录器 从显示中获取swt颜色 Syncexec - Eclipse框架 单例模式/Enum单例生成 Readfile 常量 Traceout 格式字符串 注释代码审查 字符串格式 尝试最终锁定 消息格式i18n和log Equalsbuilder Hashcodebuilder Spring对象注入 创建FileOutputStream


当前回答

我刚刚注意到@邓肯琼斯已经有这个模板,但添加${line_selection}和使用Shift + Alt + Z是一个有用的策略。

这可能只是我正在从事的项目中一些糟糕设计的一点hack fix,但我有很多情况下,一些遗留代码正在修改AWT线程之外的Swing组件,并导致间歇性错误,所以为了快速修补这些问题,我使用:

${:import(javax.swing.SwingUtilities)}
// Ensure that any Swing components will be invoked only from the AWT thread
SwingUtilities.invokeLater(new Runnable() {

    @Override
    public void run() {
        ${line_selection}${cursor}
    }
});

因此,我可以突出显示违规语句,并使用Shift + Alt + Z环绕。我把这个模板称为swinvoke。

其他回答

和一个equalsbuilder, hashcodebuilder适配:

${:import(org.apache.commons.lang.builder.EqualsBuilder,org.apache.commons.lang.builder.HashCodeBuilder)}
@Override
public boolean equals(Object obj) {
    return EqualsBuilder.reflectionEquals(this, obj);
}

@Override
public int hashCode() {
    return HashCodeBuilder.reflectionHashCode(this);
}

格式化字符串

MessageFormat -用MessageFormat包围选区。

 ${:import(java.text.MessageFormat)} 
 MessageFormat.format(${word_selection}, ${cursor})

这让我可以将光标移动到字符串上,将选择范围扩展到整个字符串(Shift-Alt-Up),然后按住Ctrl-Space两次。

锁定选区

锁定-环绕选定的行,最后尝试锁定。假设存在一个锁变量。

${lock}.acquire();
try {
    ${line_selection}
    ${cursor}
} finally {
    ${lock}.release();
}

注意${line_selection}模板显示在环绕菜单(Alt-Shift-Z)。

我看到了一个创建基本测试类的模板的答案,如果你更喜欢这种方法,这里有一些单独的调用:

使用@Before import创建setUp方法

${:import(org.junit.Before)}
@Before
public final void setUp() {
  ${cursor}
}

使用@Test import创建新的测试方法

${:import(org.junit.Test)}
@Test
public final void test${newName} () {
${cursor}
}

我使用以下代码来帮助在类型和dto之间进行JAXB转换:

将现有变量转换为返回值类型的模板(与形参一起使用)

${return_type} ${name} = null;

if (${var} != null) {
    ${name} = new ${return_type}();
    ${cursor}
}
return ${name};

代码部分

//--------------------------------------------------------------
//                       ${title}
//--------------------------------------------------------------
${cursor}

使用此模板可以更容易地注释代码部分。它不是很复杂,但为我节省了很多时间:)

我喜欢这样生成类注释:

/**
 * I... 
 * 
 * $Id$
 */

“I…”立即鼓励开发人员描述类的功能。我似乎确实改善了没有文档的类的问题。

当然,$Id$是一个有用的CVS关键字。