下,根据不同的代码,你可以做这样的事情是什么:
public class Util
{
public static void duplicateMethod()
{
// code goes here
}
}
,然后才有其他两个duplicateMethods调用那个。所以代码不会被复制,但方法名称和对Util.duplicateMethod的调用将会是。
如果Util.duplicateMethod中的代码需要访问A类和B类的实例/类变量,那么它不会很好地工作,但它可能会完成(如果需要,请告诉我)。
EDIT(基于评论):
用实例变量它变得不太漂亮......但可以做到的。例如:
interface X
{
int getVar();
void setVar(A a);
}
class A
extends ApiClass
implements X
{
}
class B
extends AnotherApiClass
implements X
{
}
class Util
{
public static void duplicateMethod(X x)
{
int val = x.getVal();
x.setVal(val + 1);
}
}
因此,对于每个需要访问的变量,您都会为get(并在必要时设置)创建一个方法。我不喜欢这种方式,因为它使get/set方法公开,这可能意味着你正在使可用的东西不想被使用。另一种方法是用反射做一些事情,但我希望更少一些:-)
如果AnotherApiClass受你控制,你可以从ApiClass继承它吗? – BeWarned 2010-03-14 00:04:03
您的方法依赖于API类或您自己的类还是两者的成员变量? – 2010-03-14 00:31:04
@Carl Manaster变量在我的课堂上。 – 2010-03-14 04:03:41