私は問題があります。Java:メソッド引数を変更する最も効率的な方法
class HundredMethods {
public void method1(int) {
}
public void method2(int) {
}
... (98 more methods)
}
と私はこれらのメソッドの5の引数を変更したい:だから、そこにこのクラスは100の+メソッドとJREへのネイティブであると仮定します。 具体的には、整数をdoubleにします。と余分なdouble引数を追加するには
私の現在のソリューションは、ラッパークラスが含まれている:
-A:提供元のクラスに直接アクセス
-B:(いくつかの余分な入力で)二重の引数を「翻訳」という5つの方法を持っています元の整数引数に変換します。だから、:
class WrapperMethods{
public HundredMethods original = (assigned at constructor)
public void method1(double,double(extra)) {
int i = (assigned a value in "code" below)
this.original.method1(i);
}
}
の両方が変化すると、上記1以外にも「重い」クラスにいくつかのメソッドに引数を追加する別の軽量なソリューションがありますか?私のコードでこのソリューションを実際に実装する面では、ラッパークラスがどのようなメソッドを変更するのかユーザーがわからないときに乱雑になることがあります。実際には、私は約250 +メソッドのクラスが25のメソッドを変更しているので、クラスが大きければ、私のコードが厄介になります。コードをパブリックとして公開したいと考えると、ラッパーを使用するたびに、ラッパーがどのメソッドを変更するか調べなければなりません。
ありがとうございます!
ラップするクラス、変更したいメソッド、変更する必要がある理由を教えてください。それが公共のJREクラスで、あなたのwrkを公にしたいのであれば、今すぐ始めましょう。 –
@JBNizet java.awt.Componentクラスを変更し、サイズや位置を扱うメソッドを変更しています。私が質問をジェネリックにしたのは、自分のプロジェクトのバージョン0.1を公開しただけなので、[ScaleUtils](https://github.com/19mkarpawich/ScaleUtils)です。これは、他のいくつかのUIクラス私は方法を変える。 –
メソッドシグネチャを 'int'から' double'に変更できないのはなぜですか? 'int'が' double'に自動的に拡大されるので、現在の呼び出しサイトはすべて動作します。 –