[解決済み] Java のメソッド名を文字列で指定した場合、どのように呼び出すのですか?
2022-03-14 14:05:41
質問
2つの変数がある場合
Object obj;
String methodName = "getName";
のクラスがわからなければ
obj
で特定されるメソッドをどのように呼び出すことができるのでしょうか?
methodName
を使用することができますか?
呼び出されるメソッドにはパラメータがなく
String
の戻り値です。それは
Java Bean のゲッター
.
どのように解決するのですか?
腰を据えてコーディングすると、次のような感じになります。
java.lang.reflect.Method method;
try {
method = obj.getClass().getMethod(methodName, param1.class, param2.class, ..);
} catch (SecurityException e) { ... }
catch (NoSuchMethodException e) { ... }
パラメータは、必要なメソッドを特定します (複数のオーバーロードがある場合、そのメソッドに引数がない場合は、引数のみを指定します)。
methodName
).
そして、そのメソッドを呼び出すには
try {
method.invoke(obj, arg1, arg2,...);
} catch (IllegalArgumentException e) { ... }
catch (IllegalAccessException e) { ... }
catch (InvocationTargetException e) { ... }
ここでも、引数を省き
.invoke
がない場合は でも、そうなんだ。について読む
Java リフレクション
関連
-
アクセス制限について アプリケーションの種類がAPIでない(必要なライブラリの制限)。
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] Javaで文字列値からenum値を取得する方法
-
[解決済み] Javaで文字列を分割する方法
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
Eclipseで "XXXX "の解決策を(型に)解決することができない
-
Javaクラスローダーにソースコードから潜り込む
-
java Mail send email smtp is not authenticated by TLS encryption solution.
-
eclipse の実行時に java 仮想マシンが見つからなかった
-
Methodのinvokeメソッド実装のJavaリフレクション
-
javaコンパイル時のエラー:不正な文字 '\ufeff' に対する解決策です。
-
Eclipse起動エラー:javaは起動したが、終了コード=1を返した(ネット上の様々な落とし穴)
-
org.glassfish.jersey.servlet.ServletContainer
-
javax.net.ssl.SSLException: 読み取りエラー: ssl=0xdeae5100: システムコール中の I/O エラー、接続 res
-
JSPで「リストが型解決できない!」の解決方法