Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.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
Eclipse Java模板向类名添加扩展或抛出_Java_Eclipse - Fatal编程技术网

Eclipse Java模板向类名添加扩展或抛出

Eclipse Java模板向类名添加扩展或抛出,java,eclipse,Java,Eclipse,因此,我一直在尝试为创建新java类时创建一个好的java模板。目前我所有的新类看起来都一样,所以我一直在构建一个模板,这样我就不必反复输入20多次相同的内容 我已经知道了如何包含所需的导入和注释,但我不知道如何扩展或抛出内容。例如,如果我想说: public class test throws Exception{ } 我似乎不知道该怎么做 我想它可能在附近的某个地方 ${typecomment} ${type_declaration} 但是,如果我尝试将它添加到typecomment

因此,我一直在尝试为创建新java类时创建一个好的java模板。目前我所有的新类看起来都一样,所以我一直在构建一个模板,这样我就不必反复输入20多次相同的内容

我已经知道了如何包含所需的导入和注释,但我不知道如何扩展或抛出内容。例如,如果我想说:

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