您可以在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
hashCode()
公共布尔值等于(对象)
使用显式测试而不是反射,反射速度较慢,在安全管理器(EqualsBuilder javadoc)下可能会失败。
该模板包含20个成员。你可以用TAB键浏览它们。一旦完成,必须删除对append()的其余调用。
${:import(org.apache.commons.lang.builder.HashCodeBuilder, org.apache.commons.lang.builder.EqualsBuilder)}
@Override
public int hashCode() {
return new HashCodeBuilder()
.append(${field1:field})
.append(${field2:field})
.append(${field3:field})
.append(${field4:field})
.append(${field5:field})
.append(${field6:field})
.append(${field7:field})
.append(${field8:field})
.append(${field9:field})
.append(${field10:field})
.append(${field11:field})
.append(${field12:field})
.append(${field13:field})
.append(${field14:field})
.append(${field15:field})
.append(${field16:field})
.append(${field17:field})
.append(${field18:field})
.append(${field19:field})
.append(${field20:field})
.toHashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (obj == this) {
return true;
}
if (obj.getClass() != getClass()) {
return false;
}
${enclosing_type} rhs = (${enclosing_type}) obj;
return new EqualsBuilder()
.append(${field1}, rhs.${field1})
.append(${field2}, rhs.${field2})
.append(${field3}, rhs.${field3})
.append(${field4}, rhs.${field4})
.append(${field5}, rhs.${field5})
.append(${field6}, rhs.${field6})
.append(${field7}, rhs.${field7})
.append(${field8}, rhs.${field8})
.append(${field9}, rhs.${field9})
.append(${field10}, rhs.${field10})
.append(${field11}, rhs.${field11})
.append(${field12}, rhs.${field12})
.append(${field13}, rhs.${field13})
.append(${field14}, rhs.${field14})
.append(${field15}, rhs.${field15})
.append(${field16}, rhs.${field16})
.append(${field17}, rhs.${field17})
.append(${field18}, rhs.${field18})
.append(${field19}, rhs.${field19})
.append(${field20}, rhs.${field20})${cursor}
.isEquals();
}
这里有一些附加模板:Link I -
链接2
我喜欢这个:
readfile
${:import(java.io.BufferedReader,
java.io.FileNotFoundException,
java.io.FileReader,
java.io.IOException)}
BufferedReader in = null;
try {
in = new BufferedReader(new FileReader(${fileName}));
String line;
while ((line = in.readLine()) != null) {
${process}
}
}
catch (FileNotFoundException e) {
logger.error(e) ;
}
catch (IOException e) {
logger.error(e) ;
} finally {
if(in != null) in.close();
}
${cursor}
更新:这个模板的Java 7版本是:
${:import(java.nio.file.Files,
java.nio.file.Paths,
java.nio.charset.Charset,
java.io.IOException,
java.io.BufferedReader)}
try (BufferedReader in = Files.newBufferedReader(Paths.get(${fileName:var(String)}),
Charset.forName("UTF-8"))) {
String line = null;
while ((line = in.readLine()) != null) {
${cursor}
}
} catch (IOException e) {
// ${todo}: handle exception
}
根据所选单词创建一个新的JUnit测试用例:
这需要一个记录器(称为_logger:在这个线程中也有一个非常好的模板)。
我是这个模板的忠实粉丝,因为它使我很容易在我想到它们的那一刻就快速地创建未实现的测试用例。他们会坐在那里不及格,提醒我要测试的案子。
${:import(org.junit.Test, org.junit.Assert)}
@Test
public void fooTest() throws Throwable {
try {
${cursor}
Assert.fail("Not Implemented");
} catch (Throwable e) {
_logger.error("Failed test", e);
throw e;
}
}
要使用它,输入测试用例的名称(比如testSerializeObject),突出显示单词,并点击Ctrl + Space(或者您为代码辅助配置的任何东西)。
我最喜欢的测试用例模板是记录异常然后重新抛出它们的模板,因为我喜欢在控制台中而不是在JUnit的异常查看器中查看异常。
你喜欢系统吗?在你的测试日志文件中,你总是可以使用类似的东西:
${:import(org.junit.Test, org.junit.Assert)}
@Test
public void ${word_selection}() throws Exception {
try {
${cursor}
Assert.fail("Not Implemented");
} catch (Exception e) {
System.out.println("Failed test");
e.printStackTrace();
throw e;
}
}