[解決済み】Javaの関数ポインタの最も近い代用品は何ですか?
2022-04-14 18:08:58
質問
10行程度のメソッドを持っています。 私は、1行のコードを変更する小さな計算を除いて、まったく同じことをするメソッドをもっと作りたいと思っています。 これは、その1行を置き換えるために関数ポインタを渡すのに完璧なアプリケーションですが、Javaには関数ポインタがありません。 何かいい方法はないでしょうか?
どのように解決する?
匿名インナークラス
で渡される関数があるとします。
String
パラメータを返します。
int
.
まず、既存のものを再利用できない場合は、その関数を唯一のメンバーとするインターフェースを定義する必要があります。
interface StringFunction {
int func(String param);
}
ポインタを受け取るメソッドは、単に
StringFunction
のインスタンスを作成します。
public void takingMethod(StringFunction sf) {
int i = sf.func("my string");
// do whatever ...
}
そして、このように呼ばれることになる。
ref.takingMethod(new StringFunction() {
public int func(String param) {
// body
}
});
EDITです。 Java 8では、ラムダ式で呼び出すことができました。
ref.takingMethod(param -> bodyExpression);
関連
-
[解決済み] tempとは何ですか、またjavaにおけるtempの用途は何ですか?
-
[解決済み] Javaでのスキャナが動作しない
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] Java の配列を表示する最も簡単な方法は何ですか?
-
[解決済み] ファイルの内容からJavaの文字列を作成するにはどうすればよいですか?
-
[解決済み] Javaの「for each」ループはどのように機能するのですか?
-
[解決済み] Java 8のmap()メソッドとflatMap()メソッドの違いは何ですか?
-
[解決済み] JavaにおけるSoftReferenceとWeakReferenceの違いは何ですか?
-
[解決済み] 浮動小数点以下の0を削除して文字列に変換する方法
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Javaにおける関数ポインタ
-
[解決済み] Javaで拡張子なしのファイル名を取得する方法は?
-
[解決済み] maven. -source 1.5ではラムダ式がサポートされていません。
-
[解決済み] getContentPane()は具体的に何をするのですか?
-
[解決済み] 午前0時からの時間を秒単位で取得する方法
-
[解決済み] 文字列が一意な文字であるかどうかを判定する
-
[解決済み] IntegerからBigIntegerへの変換
-
[解決済み] .lengthが解決できない、またはフィールドでない
-
[解決済み] :: (ダブルコロン) 演算子 in Java 8
-
[解決済み】Java パラメータとしてメソッドを渡す