我有一个简单的界面:
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!");
}
}
那么,我该如何编辑界面?谢谢
答案 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每次都自动生成一些东西,无论你实现什么,你应该查找"代码模板"在属性。