Eclipse中项目的Java模板

时间:2014-08-01 15:41:10

标签: java eclipse

是否可以更容易/更快地在Eclipse中创建(Java)文件。

我知道有#34;创建新的类向导",但对于我的"特殊"需要...

我有一个特定的项目,我经常在其中创建新类,但这些类的结构是相同的。假设我要创建类A,因此我希望将文件A.java创建为

class A {
    public static void main(String[] args) {
    }
    static int solve() {
    }
}

并且为此类创建ATest.java也是完美的,例如

class ATest {
    @Test
    int test1() {
        Assert.assertEquals(0, A.solve());
    }
}

或者Eclipse有这样的插件吗?

3 个答案:

答案 0 :(得分:2)

是的,您可以尝试使用FastCode插件,您可以根据需要创建新模板。由于FastCode插件支持自定义模板,下面是一个如何一起创建上述类和测试类的示例:

<template name="CREATE_NEW_CLASS">
        <description>Used to Create class in the specified package.</description>
        <allowed-file-names>*.*</allowed-file-names>
        <first-template-item>package</first-template-item>
        <second-template-item>none</second-template-item>
        <additional-parameters>className</additional-parameters>
        <template-body>
            <![CDATA[
            <fc:class type="class" name="${className}" package="${package.name}" project="${package.javaProject}">
            public class ${className} {
            public static void main(String[] args) {
                }
                static int solve() {
                }
            }
            </fc:class>
            <fc:class type="test" name="${className}Test" package="${package.name}" project="${package.javaProject}">
            public class ${className}Test {
            @Test
                int test1(){
                    Assert.assertEquals(0, ${className}.solve());
                }
            }
            </fc:class>
        ]]>
    </template-body>
</template>

添加模板后,您需要使用template preference page中的导入选项进行导入,如文档中所述。

答案 1 :(得分:1)

是的,设置起来相对简单。打开“项目属性”并导航到 Java代码样式&gt; 代码模板部分。在那里,选中该框以启用项目特定的设置。您想要的生成模板位于树的代码部分下;你想要 Class Body 。它可能是空的,但单击编辑... 按钮进行修改。

enter image description here

使用“新建类”向导时,无论您在“编辑”对话框中输入什么,都会插入到类的括号中。

我无法自动创建另一个类(在您的情况下为Test)。但Eclipse有一个JUnit向导,可以很容易地完成。只需右键单击一个班级,然后选择&gt; 其他... 然后在列表中找到 Junit测试用例。该向导将指导您创建测试类,包括选择要测试的方法。

注意:这些说明仅为您选择的项目或项目设置模板。您也可以为整个工作区首选项设置相同的功能,但这样做无法共享该配置,因此检出到另一个工作区的同一项目将使用它。我通常建议每个项目进行这些设置。

答案 2 :(得分:0)

我不确定您是否需要特定于IDE的模板。当我通过Project Euler时,我有一个这样的设置:

public interface Problem {
    public Object solve();
}

public class MyProblem implements Problem {
    @Override
    public Object solve() {
        // do some stuff
        return result;
    }
}

然后在你的(JUnit?)测试中,你可以使用

Assert.assertEquals(expected, myProblemInstance.solve());

您可以看到我的实施here


如果您 使用IDE模板,您将无法使用通用solve()方法,因为无法保证该类具有该方法。我强烈建议使用接口。