5

有人知道如何使用 Eclipse 模板在类签名上方插入“@RunWith 注释”吗?

前任。:

@RunWith(Parameterized.class)
public class MyClassTest {
...
    @Parameters
    public static Collection<Object[]> parameters() {
        List<Object[]> list = new ArrayList<Object[]>();
        list.add(new Object[] { "mind!", "find!" });
        list.add(new Object[] { "misunderstood", "understood" });
        return list;
    }
...
}

__

模板:

// TODO: move this '@RunWith(Parameterized.class)' to class anotation
    @Parameters
    public static Collection<Object[]> parameters() {
        ${type:elemType(collection)}<Object[]> parametersList = new ${type:elemType(collection)}<Object[]>();
        ${cursor}// TODO: populate collection
        return parametersList;
    }

__ 谢谢您的帮助!

4

1 回答 1

3

不幸的是,您不能使用 Eclipse 模板向现有的封闭类添加注释(至少,我不知道)。但是,有一种解决方法。这是您的模板的修改版本:

@${runnerType:newType(org.junit.runner.RunWith)}(${paramterizedType:newType(org.junit.runners.Parameterized)}.class)
public class ${primary_type_name} {
    @${parametersType:newType(org.junit.runners.Parameterized.Parameters)}
    public static ${collectionType:newType(java.util.Collection)}<Object[]> parameters() {
        ${baseCollectionType}<Object[]> parametersList = new ${concreteCollectionType}<Object[]>();
        ${cursor}// TODO: populate collection
        return parametersList;
    }
}

要使用模板(假设其名为“参数化”):

  1. 在 Eclipse 中创建一个新类
  2. 在做任何其他事情之前,请选择存根类声明,包括左大括号和右大括号。
  3. 键入模板的名称,然后按Cntrl+Space激活模板(您可能必须从模板列表中选择模板。我只有一个名为 Parameterized 的模板,所以 Eclipse 自动为我使用它)。

类定义将替换为包含@RunWith注释的定义。我使用了${ id :newName(reference)}模板变量来使 Eclipse 自动添加所有必要的导入(除了 和 的导入${baseCollectionType}${concreteCollectionType}您必须手动添加这些...谢天谢地Cntrl-Shift-M)

这真的很难描述。您必须尝试一下才能确切了解它是如何工作的。如果我的指示需要澄清,请发表评论。

于 2010-04-20T01:43:50.803 回答