私はFooProcess
(インタフェース)[nullオブジェクト]のオブジェクト 'Foo Action'を持っています。 FooProcess
のサブクラス[FooOne
またはFooTwo
]のオブジェクトとして 'Foo Action'を初期化したいとします。春のフレームワークを使用してSpring Frameworkを使用してクラスパス/名前からオブジェクトを作成する方法は?
、私は今、私はサブクラスの一つとしてFooAction
初期化したいと思い、ArrayList
FooList
(FooProcess
のサブクラスの名前のリスト)を作成することができています。 (selected
は、どのクラスを初期化するかを定義するために使用します)
FooProcess
のすべてのサブクラスには、String
を受け入れるコンストラクタがあります。 、それは私が見る同じ
import java.awt.Rectangle;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
public class SampleInstance {
public static void main(String[] args) {
Rectangle rectangle;
Class rectangleDefinition;
Class[] intArgsClass = new Class[] { int.class, int.class };
Integer height = new Integer(12);
Integer width = new Integer(34);
Object[] intArgs = new Object[] { height, width };
Constructor intArgsConstructor;
try {
rectangleDefinition = Class.forName("java.awt.Rectangle");
intArgsConstructor = rectangleDefinition
.getConstructor(intArgsClass);
rectangle = (Rectangle) createObject(intArgsConstructor, intArgs);
} catch (ClassNotFoundException e) {
System.out.println(e);
} catch (NoSuchMethodException e) {
System.out.println(e);
}
}
public static Object createObject(Constructor constructor,
Object[] arguments) {
System.out.println("Constructor: " + constructor.toString());
Object object = null;
try {
object = constructor.newInstance(arguments);
System.out.println("Object: " + object.toString());
return object;
} catch (InstantiationException e) {
System.out.println(e);
} catch (IllegalAccessException e) {
System.out.println(e);
} catch (IllegalArgumentException e) {
System.out.println(e);
} catch (InvocationTargetException e) {
System.out.println(e);
}
return object;
}
}
どういうところですか? – skaffman
なぜSpring Bean Factoryを使用してオブジェクトをインスタンス化し、依存関係を注入していませんか? – duffymo
@skaffman投稿で示唆した '問題'は私に必要なものを与えてくれません。さらに、IDEは構文上間違っていると言っています。 – JD009