- - PR -
変数(String型)の中にメソッド名が入ってるのですが、
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2004-11-11 15:04
thisの代わりに対象となるインスタンスを参照する変数を使えばいいだけです。 | ||||
|
投稿日時: 2004-11-11 15:24
>thisの代わりに対象となるインスタンスを参照する変数を使えばいいだけです。
その変数が、クラスAで宣言されているので、クラスBからは見えないと思うのですが。 >Class#getDeclaredMethod()をClassB.classから呼んで、呼び出したいMethodの オブジェクトを取り出し クラスBからクラスAのメソッドオブジェクトって、どうやって取り出せるのでしょうか? その手法で行き詰ってますTT | ||||
|
投稿日時: 2004-11-11 15:34
話が通じにくい様なので、コードを書いてしまいますね。
動作チェックはしていませんので、その辺は宜しくです。
| ||||
|
投稿日時: 2004-11-11 15:42
>話が通じにくい様なので、コードを書いてしまいますね。
あのー… クラスBのインスタンスの中で、Class#getDeclareMethod、Method#invoke等を使って、 クラスAのインスタンスのメソッドを呼び出したいんですが。。。 できるのかできないのかすらわからないです。。。 | ||||
|
投稿日時: 2004-11-11 15:48
うーん、要求に100%あうコードを書くまで許してもらえないですか…orz
多少のずれがあっても察してもらえると思った私が甘かった^^;
| ||||
|
投稿日時: 2004-11-11 15:50
クラスBのメソッドの呼び出し時に、引数でクラスAのインスタンスを メソッド名の文字列と一緒に渡してあげてください。 そして、thisの変りにそのインスタンスを使ってください。 | ||||
|
投稿日時: 2004-11-11 15:57
何度もすいません。でも、ダメなんです。
プログラムの構成としては、 public class Test { public static void main(String args[]) { ClassA AAA = new ClassA(); } } class ClassA { ClassB BBB = null; ClassC CCC = null; // コンストラクタ ClassA() { BBB = new ClassB; CCC = new ClassC; } // 呼び出されるメソッド public testA() { } } class ClassB { // 呼び出すメソッド名称が入ってます public testB(String method) { // ClassAのメソッド呼び出し // ClassCのメソッド呼び出し } } class ClassC { // 呼び出されるメソッド public testC() { } } こんな感じです。 | ||||
|
投稿日時: 2004-11-11 16:13
ClassB のインスタンスを作成するときに、ClassA への参照を渡しとけば? | ||||
