NetBeans createFromTemplate将错误的值传递给$ {name}

时间:2015-10-06 19:07:43

标签: java netbeans codenameone netbeans-platform netbeans-plugins

我在NetBeans插件中使用了这样的代码:

DataObject result = dTemplate.createFromTemplate(df, name, args);

正确生成文件。但是,如果存在具有给定名称的文件,则模板将占用新文件名(如结果对象中所反映的),但${name}值仍引用旧名称。例如。如果name = HiHi.java已存在,则会创建Hi_1.java,但${name}仍为Hi

另外,我对.java扩展程序的来源感到有点困惑。我原来的代码有这个:

DataObject result = dTemplate.createFromTemplate(df, name + ".java", args);

但事实证明.java是不必要的,而且我不确定我在哪里指明这确实是我想要的?

1 个答案:

答案 0 :(得分:0)

我不确定这是否是正确的方式"但这是我到目前为止似乎有效的方法:

private String getProperName(DataFolder f, String name, int suffix) {
    String actualName = name;
    if(suffix > 0) {
        actualName = actualName + "_" + suffix;
    }
    for(DataObject chld : f.getChildren()) {
        if(chld.getName().equals(actualName)) {
            suffix++;
            return getProperName(f, name, suffix);
        }
    }
    return actualName;
}

然后在代码中:

String actualName = getProperName(df, name, 0);        
DataObject result = dTemplate.createFromTemplate(df, actualName, args);

这样重命名永远不会发生,我有点避免这个问题。