为什么Eclipse标记接口方法是公共抽象的?

ver*_*tti 9 java eclipse interface

当使用Eclipse的" Extract Interface "重构时,它将public abstract默认声明方法.为什么?public接口上的修饰符是完全冗余的,并且abstract在接口声明上似乎也没有意义.

NPE*_*NPE 7

这些关键字确实是多余的.我个人不会在这种情况下使用它们,但我可以看到为什么有人可能更愿意包含它们.

JLS 明确不鼓励这种做法:

允许但不鼓励作为样式,冗余地指定接口中声明的方法的public和/或abstract修饰符.

在我的Eclipse版本(Juno SR1)中,Extract Interface对话框中有两个选项:

  • 声明接口方法为public;
  • 将接口方法声明为abstract.

如果取消它们,则在提取接口时Eclipse不应再包含这两个关键字.

有一个待定的Eclipse错误报告可以清除冗余修改.