编写一个Java加法器-移除器,Eclipse的方法代码模板



有太多时间我遇到需要为列表编写加法器/移除器方法:

public void addSomething(Something something){
    somethings.add(something);
}
public void removeSomething(Something something){
    somethings.remove(something);
}

如果我做对了,那么Eclipse模板可以支持自动完成。。。例如,如果我有一个:

Vector<Something> somethings=new Vector<Something>();

我希望模板将该方法添加到Eclipse的自动完成中,并自动完成整个方法:

public void addSomething(Something something){
    somethings.add(something);
}

当我键入"add"+(Ctrl+空格)时。。。

知道如何完成这样的事情吗。。。也许可以给我指一本专门针对这类主题的读物。

**更新**

好吧,这就是我目前所拥有的:

public final void add${type:elemType(collection)}(${type} ${varName:newName(type)}) {
    ${collection}.add(${varName}); 
}

但问题是,如果我键入"add"+(Ctrl+Space):

在类级别,集合被声明为字段,我得到一个空变量作为集合。

public final void addtype(type type) {
    collection.add(type);
}

在方法级别,集合被声明为字段,我得到一个空变量作为集合。

public final void addtype(type type) {
    collection.add(type);
}

在方法级别,集合引用是方法的局部变量。我得到了正确的语法,但add方法在另一个方法内部。

public void method(...) {
    public final void addSomething(Something something) {
        this.somethings.add(something);
    }
}

这意味着我没有获得字段级引用,我如何获得它?

**更新2*

这也给出了相同的结果:

public final void add${type:elemType(collection)}(${type} ${varName:newName(type)}) {
    ${collection:field(java.util.Collection)}.add(${varName}); 
}
public final void remove${type:elemType(collection)}(${type} ${varName:newName(type)}) {
    ${collection:field(java.util.Collection)}.remove(${varName}); 
}

谢谢,

亚当。

您可以在Eclipse帮助中了解可用的模板变量。您应该在Eclipse中现有模板的基础上构建一个模板,请参阅Eclipse中的"模板视图"。

我建议您使用Source > Generate delegate methods,这样您就不必为要生成的每个方法编写模板。

每当您声明对象时,为Generate delegate methods分配一个热键

List<Integer> integer = new ArrayList<Integer>();| <- your cursor

按下热键,Eclipse将检测当前选定的对象,然后为您列出可用的方法列表。

我终于使用了以下内容:

public final void add${type:elemType(collection)}(${type} ${varName:newName(type)}) {
    ${collection:field(java.util.Collection)}.add(${varName}); 
}
public final void remove${type:elemType(collection)}(${type} ${varName:newName(type)}) {
    ${collection:field(java.util.Collection)}.remove(${varName}); 
}

我在一个方法中创建了这个,并将其剪切到类级别…:)

相关内容

  • 没有找到相关文章

最新更新