0

Class.forname() を使用して、このコードを使用してインスタンスを動的に作成します。

String className = "models." + category;
Class c = Class.forName(className);
Object tuple = c.newInstance();

しかしその後、クラス内のいくつかのメソッドを呼び出すことができないことがわかりました。tuple.setName() またはその他のメソッドを使用できません。

クラスcがJavaでいくつかのメソッドを呼び出すことができると宣言するにはどうすればよいですか?

4

1 に答える 1

3

そのクラスをキャストできるインターフェイスが必要です。

 MyInterface tuple =  (MyInterface) c.newInstance();
 tuple.setName("Bilbo");

それができない場合は、引き続きリフレクションを使用する必要があります。

 Method setName = c.getMethod("setName", String.class);
 setName.invoke(tuple, "Bilbo");
于 2013-09-02T23:14:17.263 に答える