2009-10-23 47 views
7

新类型(窗口>首选项>代码样式>代码模板>新的Java文件)Eclipse的默认模板看起来是这样的:在Eclipse中,如何更改类/类型模板中的默认修饰符?

 
${filecomment} 
${package_declaration} 

${typecomment} 
${type_declaration} 

创建一个新的类,它会是这个样子:

package pkg; 

import blah.blah; 

public class FileName { 
    // Class is accessible to everyone, and can be inherited 
} 

现在,我在我的信仰狂热的访问应限制越好,继承应该被禁止,除非明确允许,所以我想改变${type_declaration}声明所有类作为final而非public

package pkg; 

import blah.blah; 

final class FileName { 
    // Class is only accessible in package, and can't be inherited 
} 

这似乎说起来容易做起来难。我发现的唯一一个Google搜索是2004 question on Eclipse's mailing list,这是没有答案。

所以,这个问题简而言之:如何在Eclipse中更改默认的类/类型修饰符?

我正在使用Eclipse伽利略(3.5),如果这很重要。

回答

1

看起来不可能。 ${type_declaration}是内部的东西。

你可以做的是每次点击“New Java Class”-Dialog中的最后一个复选框。但那不是你想要的。

+0

你说得对。这不是我想要做的:) – gustafc

0

只需使用New Class Wizard创建新类时检查相应的访问修饰符。

New Java Class Wizard

+0

这就是我今天所做的。问题是它不记得我的选择,所以我忘了随时做。 – gustafc

+1

@gustafc如果您忘记它,您可以让Checkstyle提醒您。 – starblue

+0

@starblue,这是一个很好的提示。谢谢。 – gustafc

1

好吧,我觉得没有任何冷静的回答,那么那个 “黑客”?

${filecomment} 
${package_declaration} 

${typecomment} 
import invalid;/* ${type_declaration} */ 

final class ${type_name} { } 

如果你打到现在控制 + + Ø组织进口,旧的类型声明消失。您还可以添加组织导入以保存要自动执行的操作。

我知道这是不好的,但它做你想做的。

+0

呃......有趣的想法。不幸的是,它然后声明一切为'最终类',包括接口,枚举等,并且它错过了我在向导中声明的任何超类/接口。我还必须在注释中包含'$ {type_declaration}',因为如果没有它,就无法保存模板。 – gustafc

0

这里是我的解决方法:

编辑模板:

${filecomment} 
${package_declaration} 

${typecomment} 
final class ${type_name} { 

    /* ${type_declaration} //delete */ 

    /** 
    * @see {@link Object#toString()} 
    * @return String representation of this instance. 
    */ 
    public String toString() { 
     return "some impl"; 
    } 

} 

注释掉$ {} type_declaration因为它是必需的。您有删除评论,但要求已达到。对不起,如果这是一个2岁的线程,但对我来说,它仍然是相关的。

+0

错过codevour的回答。它基本上是一样的。 –

相关问题