在接口被许多类实现之后,如何正确地更改它?JAVA
我有一个在接口被许多类实现之后,如何正确地更改它?JAVA,java,Java,我有一个 public interface DoIt { void dosomething (int i, double x); int dosomethingelse (String s); } 一些实现它的类是class\u of_a等。。。 我想在接口中添加一个新方法,比如说diditwork(intx) 我应该如何做到这一点,同时避免重新编译的问题或任何可能的问题?新的层次结构是什么?创建一个新接口并扩展旧接口,例如: interface DoIt2 extends D
public interface DoIt {
void dosomething (int i, double x);
int dosomethingelse (String s);
}
一些实现它的类是class\u of_a
等。。。
我想在接口中添加一个新方法,比如说diditwork(intx)代码>
我应该如何做到这一点,同时避免重新编译的问题或任何可能的问题?新的层次结构是什么?创建一个新接口并扩展旧接口,例如:
interface DoIt2 extends DoIt
{
// void doSomething(int i, double x);
// int doSomethingelse(String s);
void didItWork(int x);
}
创建另一个接口并让给定类实现这两个接口
e、 g
和新的接口
public interface CheckIt {
boolean diditwork(int x);
}
不需要检查的类将只实现DoIt接口,需要检查的类也将实现CheckIt接口您可以像这样扩展现有接口:
public interface CheckIt {
boolean diditwork(int x);
}
interface DoItMore extends DoIt { diditwork(int x); }
因此,您将拥有用于低级类的旧接口和用于高级类的新接口。然后您必须更改高级类中使用的接口 这个新方法是否应该由现有类实现?若并没有,那个么添加到接口就并没有意义了。如果需要,那么我们就无法避免重新编译实现的类。看看JDK在SortedSet
和NavigableSet
方面的先例……这不是一个很好的解决方法为什么您需要DoIt2中的前两个方法?如果DoIt2扩展了DoIt,为什么您要将DoIt的方法放在那里?