コードが何であるかに応じて、次のようなことができます。
public class Util
{
public static void duplicateMethod()
{
// code goes here
}
}
そして、他の 2 つの duplicateMethods にそれを呼び出させるだけです。したがって、コードは複製されませんが、メソッド名と Util.duplicateMethod の呼び出しは複製されます。
Util.duplicateMethod のコードが A および B クラスのインスタンス/クラス変数にアクセスする必要がある場合、うまく機能しませんが、実行できる可能性があります (必要な場合はお知らせください)。
編集(コメントに基づく):
インスタンス変数を使用すると、見栄えが悪くなります...しかし、実行できます。何かのようなもの:
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 (および必要に応じて set) のメソッドを作成します。get/set メソッドを public にするので、この方法は好きではありません。別の方法は、リフレクションを使用して何かを行うことですが、それはさらに少なくしたいと思います:-)