[解決済み] 名前付きパラメータ
2022-02-06 23:27:52
質問
メソッドを持っています。
def test(String a, String b) { }
で、これをダイナミックパラメータマップで呼び出したい。 いつも思うのですが
test(['1','2']); //valid call
然も
test([a:'1',b:'2']); //=> does not work
が、うまくいきません。そこで思い出したのが 散布図演算子 が、うまくいかない...。
上記のようなメソッドを、単一パラメータではなく、何らかのマップをパラメータとして呼び出す方法はありますか?
解決方法は?
もしかしたら見落としているかもしれませんが、Groovyには今、名前付きパラメータがないと思います。あるのは ディスカッション と プロポーザル しかし、公式には何も知らない。
あなたの場合、地図が広がっていると思います かもしれません が役立ちますが、すべてのケースに当てはまるわけではありません。値を取得する際、マップの値が宣言された順番に従います。
def test(String a, String b) { "a=$a, b=$b" }
def test(Map m) { test m*.value }
assert test(a: "aa", b:"bb") == "a=aa, b=bb"
assert test(b: "aa", a:"bb") != "a=aa, b=bb" // should be false :-(
assert test(b: "ccc", a:"ddd") == "a=ddd, b=ccc" // should have worked :-(
クラスの場合は、次のようになります。 Groovyのas演算子 ?
@groovy.transform.CompileStatic
class Spread {
class Person {
String name
BigDecimal height
}
def method(Person p) {
"Name: ${p.name}, height: ${p.height}"
}
def method(Map m) { method m as Person }
static main(String[] args) {
assert new Spread().method(name: "John", height: 1.80) ==
"Name: John, height: 1.80"
}
}
関連
-
[解決済み] 名前付きパラメータ
-
[解決済み] Groovyで文字列をint型に変換する
-
[解決済み] groovyで乱数を使うにはどうしたらいいですか?
-
[解決済み] グルービーです。Grabインクルージョンとクラスパスインクルージョンの違いは?
-
JSONを処理するGroovy
-
Groovyテンプレートエンジン
-
Groovyの使い方を完全解説
-
[解決済み】JavaScriptの関数呼び出しで名前付きパラメータを提供する方法はありますか?
-
[解決済み】gradleプラグインを適用する際の違いについて
-
[解決済み] Jenkinsfile (groovy)から変数に使用して実行されたシェルコマンドの出力を取得するには?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 名前付きパラメータ
-
[解決済み] Groovyで文字列をint型に変換する
-
[解決済み] groovyで乱数を使うにはどうしたらいいですか?
-
[解決済み] グルービーです。Grabインクルージョンとクラスパスインクルージョンの違いは?
-
[解決済み] groovy.lang.MissingMethodException を修正する方法。メソッドのシグネチャがありません。
-
グルーヴィーな使い方
-
Groovyの使い方を完全解説
-
Groovyの紹介と使い方
-
[解決済み】gradleプラグインを適用する際の違いについて
-
[解決済み] Jenkinsfile (groovy)から変数に使用して実行されたシェルコマンドの出力を取得するには?