WebApp で少しの Reflexion を使用しています。私がやろうとしているのは、型のケースを実行した後にメソッドを動的に呼び出すことです-これもコンパイル時にわかりません
これが私のコードの構造です:
Controller (Interface with one method called 'execute()')
|
|
\|/
BaseController (Abstract Class with 1 abstr method called 'execute()')
/ \
/ _\|
/ GetCarController extends BaseController
|/_
AddCarController extends BaseController
今、私は上記の構造を使用するこのコードを持っています:
BaseController baseContr;
Properties prop = new Properties();
prop.load("some inputstream to config.properties");
Constructor cons = Class.forName( prop.getProperty( keyProperty ) ).
getConstructor( Class.forName( prop.getProperty( keyProperty ) ).getClass() );// keyProperty is some input string from user
( ( XXXXXX )cons.newInstance ( new Car(....) ) ).execute();
あなたが見XXXXXX
ているところは、実際に型キャストを動的に配置する方法が欲しいところです。execute()
このキャストは、いずれかでメソッドを呼び出す方法を見つける必要があります。そうしないと、
メソッドを呼び出すために BaseController の実装のいずれかを直接使用したくありませんが、与えられたものに基づいてキャストする方法が必要AddCarController
です ...GetCarController
prop.getProperty(keyProperty)