Eclipse Java模板向类名添加扩展或抛出
因此,我一直在尝试为创建新java类时创建一个好的java模板。目前我所有的新类看起来都一样,所以我一直在构建一个模板,这样我就不必反复输入20多次相同的内容 我已经知道了如何包含所需的导入和注释,但我不知道如何扩展或抛出内容。例如,如果我想说:Eclipse Java模板向类名添加扩展或抛出,java,eclipse,Java,Eclipse,因此,我一直在尝试为创建新java类时创建一个好的java模板。目前我所有的新类看起来都一样,所以我一直在构建一个模板,这样我就不必反复输入20多次相同的内容 我已经知道了如何包含所需的导入和注释,但我不知道如何扩展或抛出内容。例如,如果我想说: public class test throws Exception{ } 我似乎不知道该怎么做 我想它可能在附近的某个地方 ${typecomment} ${type_declaration} 但是,如果我尝试将它添加到typecomment
public class test throws Exception{
}
我似乎不知道该怎么做
我想它可能在附近的某个地方
${typecomment}
${type_declaration}
但是,如果我尝试将它添加到typecomment之前,它只会出现在类名之前(如果我介于两者之间,则相同),如果我在type_声明之后输入它,它只会出现在最后一个大括号之后的文件末尾
甚至有可能做我正在尝试的事情吗
这与我现在的模板非常相似:
${filecomment}
${package_declaration}
import java.util.*;
/**
*
*@author
*@version 28 May 2015
**/
${type_declaration}
当我创建一个名为test的新类时,它会创建一个如下所示的文件:
package unfinished;
import java.util.*
/**
* @author
* @version 28 May 2015
**/
public class test {
}
这是一个很好的开始,但我希望它能保持下去
public class test extends bicycle{
}
编辑:根据您提供的其他信息: 对于“新Java文件”代码样式模板,您不能(或者即使可以也不应该)指定它的扩展内容,因为您在
newclass
对话框中指定了它
为类添加抛出
声明也没有意义。如果您想向默认构造函数添加throws
声明,这是有意义的。如果要从模板中添加默认构造函数,可以编辑“类主体”代码样式模板,但我建议改为编写内容辅助模板,因为代码样式模板始终应用于每个文件,而内容辅助模板仅在您特别选择时使用
要添加内容辅助模板,请转到首选项:Java:Editor:Templates,然后单击“新建…”。将上下文设置为“Java”,然后键入构造函数
要使用新模板,请在Java文件中键入其名称,然后点击ctrl-space
激活内容辅助功能,然后从列表中选择模板。(当您点击ctrl空格
时,如果只有一个选项,内容辅助将自动选择顶部选项
(旧答案,在不正确的假设下运行,我们讨论的是内容辅助模板,而不是代码样式模板:) 如果您总是扩展/实现/抛出相同的东西,只需在模板中硬编码即可 但是,如果您想在自动完成模式下切换并指定要扩展的类,等等,那么可以使用任意名称 例如,我必须创建一组BD方法,因此我将此模板组合在一起:
public ${Type:return_type} ${name}(${}) throws Exception {
Connection conn = Database.getConnection();
${BaseDAO:elemType} dao = new ${BaseDAO}(conn);
try {
return dao.${name}();
} catch (Exception e) {
throw e;
} finally {
Database.closeConnection(conn);
}
}
${name}
只是一个任意标记,它与“Insert Variable”中的任何内容都不对应。每次${name}
出现在我的模板中,一个模板中的任何用户类型都将出现在所有实例中。我可以很容易地将${foo}
或${anyArricrythingWant}
并得到相同的结果。我认为这是回答您问题的最简单方法
以下几点并不能真正回答您的问题,只是解释了我的示例中的一些项目
${Type:return\u Type}
允许我设置方法的返回类型。由于我将其命名为“Type”,默认返回类型将是Type
类,在我的程序中,该类是一个具有名称、id和描述的对象
${}
是一个空的tab-able条目。不幸的是,我无法使用它将方法的参数传递到对dao的调用。${name}(…)
,因为它逐字复制到每个匹配的实例,并且声明的方法参数与引用它们不匹配。例如,如果我在${}中输入“String str
,它会把“String str”放在我调用相应的dao方法的地方,这是不正确的语法。如果我能弄清楚怎么做,我可以硬编码它。我还不能弄清楚什么是${typecomment}
和${type\u声明}
do。我很确定一旦我弄明白了硬代码就会是public class${type\u name}
throws…你能把你目前拥有的模板添加到你的问题中吗?还有,你的模板使用的是什么上下文?@MartinCarney编辑过,希望这就是你想要的。我正在preferences>Java>代码样式>代码模板>代码>新Java文件中进行编辑
@MartinCarney我对Eclipse模板非常陌生。我是通过首选项屏幕中的模板执行此操作,而不是通过Window>Show view>Templates