使用eclipse通过接口在方法中添加默认代码

时间:2013-12-04 10:14:50

标签: java eclipse methods interface

我有一个简单的界面:

public interface MyInterface{
    public void method1();
}

我想要的是,只要类实现MyInterface,对应方法将始终具有默认代码。当我写implements MyInterface时,我希望能够使用Eclipse的建议来自动添加代码。例如:

public class SomeClass extends AClassImForcedToExtendDueRequirements implements MyInterface{

    ...
    /*Now I use Eclipse's code-completition suggestion*/
}

然后我想有这种情况:

public Class SomeClass extends AClassImForcedToExtendDueRequirements implements MyInterface{

    ...
    @Override
    public void method1(){
        System.out.println("This is a default line of code, added automatically!");
    }
}

那么,我该如何编辑界面?谢谢

2 个答案:

答案 0 :(得分:3)

无法使用接口完成。这就是抽象类的用途。

public abstract class MyAbstractClass
{
  public abstract void myAbstractMethod()
  {
    System.out.println("Default method body");
  }
}

//calling myAbstractMethod on this will output "Default method body"
public class MyClass extends MyAbstractClass
{
 //other stuff
}

//calling myAbstractMethod on this will output "Overriden method body"
public class MyClassWithOverride extends MyAbstractClass
{
  public void myAbstractMethod()
  {
    System.out.println("Overriden method body");
  }
}

我知道Eclipse不能为你做这件事,也不知道任何可用的插件或它是如何工作的。原因是它需要从某个地方获取默认实现,因此需要为每个要完成的接口编写和存储。然后,当你使用相同的方法名实现两个接口时,这是一个不太可能出现的问题。

答案 1 :(得分:1)

由于您无法实现一个能够准确提供您所要求的抽象类,因此您应该退后一步,看看是否可以改进代码结构。如果你有一堆做同样事情的类,也许这些类应该是一个普通类的子类?

如果你想使用Eclipse每次都自动生成一些东西,无论你实现什么,你应该查找"代码模板"在属性。