0

私は次のような名前のクラスを持っています私は別のプロジェクトの別のパッケージのように名前を付けorderられたpackage com.abc 別のクラスを持っていますordercom.bcd

両方の注文クラスには、変更なしで同じコードget、set関数、および変数があります。

それから私はオブジェクトを持っています

com.abc.order obj1 = new com.abc.order();
com.bcd.order obj2 = new com.bdc.order();

今、私は関数に引数を渡す必要があり、それはパラメータとしてのみかかります。タイプをタイプobj2に変換するにはどうすればよいですか?obj1obj2

関数のパラメーターを変更できません。

お返事を楽しみにしています。ありがとう。

4

5 に答える 5

1

あるオブジェクトから別のオブジェクトにプロパティをコピーするには、ApacheCommonsBeanUtilsをご覧ください。

http://commons.apache.org/beanutils/v1.8.3/apidocs/index.html

何かのようなもの

BeanUtils.copyProperties(obj2, obj1)

トリックを行う必要があります。

于 2012-04-09T07:51:06.613 に答える
0

可能であれば、2つのクラスのいずれかを削除するのが最善の解決策です。特に、それらが同一である場合はそうです。

それ以外の場合は、可能であれば、名前を変更します(可能な場合は最初の文字を大文字にします)。

最後に、上記のいずれかを実行できない場合は、一方または両方のクラスで変換メソッドを記述し、すべての使用法でパッケージを保持することにより、使用されているクラス間で解決します。

import com.abc.order;

abc.order obj1 = new abc.order(); 
bcd.order obj2 = new bdc.order();
于 2012-04-09T07:45:39.113 に答える
0

各フィールドをコピーする必要があります。BeanIntrospectorを使用して、これを行うことができます。

于 2012-04-09T07:35:23.980 に答える
0

コードにもう一度入力するだけで関数をオーバーロードできますが、今回はcom.abc.order代わりにインスタンスを使用します。もちろん、もう一方も保管してください。

これらの2つの関数を定義している場合は、機能します。問題は重複です。私はこれまでこのような状況を見たことがなく、クラスを複製して同じコードで両方を使用することは良いコーディング慣行のようには思えません。それらを互いにキャストできますか?私(obj1) obj2?はあなたができるとは思わないが、私は100%確信していないように...

于 2012-04-09T07:37:28.893 に答える
0

com.abc.orderのクラスcom.bdc.orderサブクラスを作成できます

なぜあなたがこれをしたいのか明確にできますか?

于 2012-04-09T10:24:57.130 に答える