防止接口中的修饰符 final

Posted

技术标签:

【中文标题】防止接口中的修饰符 final【英文标题】:Prevent modifier final in interfaces 【发布时间】:2012-12-14 13:18:38 【问题描述】:

您可以在 Eclipse 中设置代码样式以尽可能使用修饰符“final”。 不幸的是,这个修饰符也在接口中设置。但是那里没有意义。 是否可以防止在接口中为方法参数设置修饰符“final”? 只是为了明确..我的意思不是字段。这些总是最终的和静态的。 我的意思是像'param'这样的方法参数

public interface MyService 
   void aMethod(String param);

而不是

public interface MyService 
   void aMethod(final String param);

'final'并没有改变代码的逻辑,但是没有必要。

【问题讨论】:

没有意义的是在界面中创建一个非final字段。 我同意你的观点,但我的意思不是字段。我的意思是接口中的方法参数。 接口中的字段总是最终的,不管它们是否被声明为最终的。无论如何,我无法重现您的问题。我已经设置了“尽可能使用 final”,运行清理,但我的界面没有改变。 接口中没有字段声明。 【参考方案1】:

您不能指定 interfaceclass 的行为,但您可以让它停止将 final 放在参数上。

转到Preferences -> Java -> Code Style -> Clean Up,编辑配置文件并选择Code Style 标签。在底部的Variable Declarations 下,取消选中Parameter 复选框。

【讨论】:

我想要类级别的 final 修饰符。这是有道理的。 我认为你不走运。我不知道如何设置它来区分类和接口。

以上是关于防止接口中的修饰符 final的主要内容,如果未能解决你的问题,请参考以下文章

在Java中,为什在定义常量中要加修饰符final?到底起啥作用呢,能不能不加?

C#防止基类方法被派生类中的new修饰符隐藏

static修饰符与final修饰符

java中的类修饰符成员变量修饰符方法修饰符

final关键字和权限修饰符

什么是修饰符?它有什么作用?举例说明