下,根據不同的代碼,你可以做這樣的事情是什麼:
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