1. ホーム
  2. java

[解決済み】Java Reflection - Object is not an instance of declaring class

2022-02-16 16:02:14

質問

この質問はGoogleであちこちで聞かれていますが、私はまだ困っています。 以下は私がやろうとしていることです。 タイトルにあるように、「オブジェクトは宣言したクラスのインスタンスではありません」というエラーが発生します。 何かアイデアはありますか? ありがとうございます。

メイン.java

Class<?> base = Class.forName("server.functions.TestFunction");
Method serverMethod = base.getMethod("execute", HashMap.class);
serverMethod.invoke(base, new HashMap<String, String>());

テストファンクション.java

package server.functions;

import java.util.HashMap;
import java.util.Map;

import server.*;

public class TestFunction extends ServerBase {

    public String execute(HashMap<String, String> params)
    {
        return "Test function successfully called";
    }
}

解決方法は?

クラスを指定してメソッドを呼び出していますが、そのクラスのインスタンスが必要です。これを試してみてください。

serverMethod.invoke(base.newInstance(), new HashMap<String, String>());