問題タブ [expandometaclass]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - groovyのリストからマップを作成するためのショートカット?
私はこれのためにいくつかのソートハンドが欲しいです:
GDKのものがどのようであるかを考えると、私は次のようなことができると期待しています。
しかし、私はドキュメントに何も見ていません...私は何かが欠けていますか?それとも私はあまりにも怠惰ですか?
groovy - Groovy expando メタクラス
整数を拡張するいくつかのメソッドを持つクラスを開発しました。主にこれを行うことができます。
ここで、Integer.metaClass を次のように拡張する必要があります。
Money クラス宣言の前に、ファイルの一番下にそれを入れようとしましたが、コンパイラは Money という名前のクラスが既に存在すると言いました。このコードを実行するには void main を使用します)。
また、次のようにクラス内で静的ブロックを使用してみました。
これはどちらも機能しません。
3 番目の解決策は、ファイル名 (MoneyClass.groovy など) を変更し、クラス名 (class Money) を保持することですが、これは少し奇妙に思えます。
他にできることはありますか?ありがとう。
grails - run-app と run-war の Grails の動作の違い
私は Groovy と Grails に比較的慣れていないので、空き時間にそれらを試しています。を使用して正常に実行できる小さなテスト Grails アプリケーションを持ってgrails run-app
いgrails run-war
ますが、エラーが発生します。
メソッドでは、grails-app/conf/BootStrip.init
いくつかのプロパティ ゲッターをDefaultGrailsControllerClass
andに追加していDefaultGrailsApplication
ます。
私のgrails-app/views/layouts/main.gsp
中で、私はこれを使用しています:
これは で正常に動作しますrun-app
が、 で実行するとrun-war
、次のようになります。
Grails 1.1.1 および 1.2-M1 でこれを試しましたが、同じ結果が得られました。BootStrap.init
メソッドが ( 経由で) 呼び出されていることを確認しましたprintln
が、 に加えられた変更metaClass
はrun-war
.
私が見逃しているものはありますか?
groovy - Groovy のクラスに新しいクロージャーを追加する方法
Snipplrから
ここにスクリプトコードがあります。コメントには質問とスローされた例外があります
unit-testing - Groovyでは、Expandoと'as'演算子およびクロージャを使用することが理にかなっているのはいつですか?
Groovyは、さまざまな選択肢を提供する素晴らしい言語です。
単体テストについて考えるとき、Expandoオブジェクトとクロージャー付きの「as」演算子を使用するのはいつ意味がありますか?
http://groovy.codehaus.org/Developer+Testing+using+Maps+and+Expandos+instead+of+Mocks vs http://groovy.codehaus.org/Developer+Testing+using+Closures+instead+of+モック
単純なケースでは、それらの使用法は非常に似ているようです。
ありがとう!
groovy - Groovyのネストされたクロージャを介してデリゲートを渡す
Groovyクロージャをマークアップとして受け入れるビルダーを作成しています。ただし、ネストされたクロージャを使用してメソッド呼び出しをキャッチするのに問題があります。
ネストされたクロージャのデリゲートプロパティを設定する方法はありますか?
groovy - Groovyメタクラスを適切に初期化する場所はどこですか?
Groovyアプリケーションで、メタクラスを初期化する場合、それらの初期化を配置するのに最適な場所はどこですか?Grailsアプリでは、Bootstrap.groovyファイルを使用しました。任意のGroovyアプリに似たものはありますか?
編集:明確にするために、私はこれを行うための邪魔にならない方法を探しています。これにより、メインアプリケーションの実行時、および関連するコードの単体テストで呼び出されることが保証されます。
groovy - ExpandoMetaClass - 静的メソッド + シングルトン + オーバーロードされた関数
ExpandoMetaClass を使用して静的メソッドを動的に追加できます。この ExpandoMetaClass を Singleton オブジェクトで使用し、その中にオーバーロードされた静的関数を使用するにはどうすればよいですか。サンプル プログラムを ExpandoMetaClass を使用して書き直す必要があるとしましょう。
groovy - Groovyの印刷結果とnull値でもExpandoMetaclassを使用する
サンプル プロゲームは、expandometaclass 手法を使用して実行しようとすると、2 つの出力が得られます。1 つは目的の結果、2 番目の出力は「null」です。null はどこから取得されますか?
出力:
このプログラムが出力として null も出力する理由
groovy - gmaven プラグインを使用して org.codehaus.groovy.control.MultipleCompilationErrorsException を取得する
これは私のサンプル プログラムです。mvn を使用してコンパイルすると、コンパイル エラーが発生します。ExpandoMetaClass を使用して静的メソッドを追加しようとしています -
mvn compile を発行しながら、gmaven プラグインを使用してプロジェクトをコンパイルしています。
これは私の pom.xml エントリ gmaven ビルド プラグイン エントリです