[解決済み】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>());
関連
-
[解決済み] メソッドがそのスーパークラスのメソッドをオーバーライドしない
-
[解決済み] Java内部クラスと静的ネストされたクラス
-
[解決済み] Could not find or load main class "とはどういう意味ですか?
-
[解決済み] Javaクラスにおけるcanonical name、simple name、class nameの違いは何ですか?
-
[解決済み] Javaでオブジェクトをコピーするにはどうしたらいいですか?
-
[解決済み] Typeから新しいオブジェクトのインスタンスを作成する方法
-
[解決済み] 汎用型Tのクラスインスタンスを取得する方法を教えてください。
-
[解決済み] Javaリフレクションを用いた静的なプライベートfinalフィールドの変更
-
[解決済み] リフレクションを用いたオブジェクトのプロパティ設定
-
[解決済み】なぜC++にはリフレクションがないのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン