2017-04-12 16 views
0

現在、私は自社の社内スクリプティング言語(Object Orientated)から他の言語のかなりの機能をGroovyに移植するプロジェクトに取り組んでいます。多くの同様の機能。Groovyでインポートして使用できるライブラリを作成する

コードをできるだけオリジナルに近づけるため、特定の関数名とパラメータを同じままにしています。これに対応するために、私はインポートできるライブラリのセットを書きたいと思います。

たとえば、元のスクリプト言語にinbuiltメソッドがあるとします。 このメソッドの定義をGroovyファイルに書き込んで、必要に応じてインポートすることができます。呼び出される。

Tools.groovy

// filename: Tools.groovy 
public String foo(String bar) { 
    return bar; 
} 

と、別のファイルに

Main.groovy

// filename: Main.groovy 
import Tools; 

String bat = foo("bar") 

私はあなたがジャーにクラスファイルをコンパイルし、クラスパスにそれらを置くことができることを知って、私が実装する必要のあるメソッドの多くは、メタプログラミングを必要とするか、オブジェクトに関連付けられません。

申し訳ありませんが、それは悪い質問または十分に明確でない場合。私はそれが可能かどうかは分かりません。

いいえお返事

答えて

1

私はあなたがライブラリを作成し、必要に応じて再利用できるはずです。

インスタンスを作成する必要がない場合はクラスを作成し、それ以外の場合は静的メソッドを追加するだけです。その後、あなたはすでに後で進める方法を知っているように見えます。

たとえば、説明に基づいてString、Listなどのユーティリティクラスを作成できます。

ところで、ライブラリを作成しなくても、Groovyで1行書くことで、ほとんどの場合に必要なものを達成することさえできます。

+0

私は、Foo.bar()などの静的メソッドでクラス表記を使用する必要がないようにしようとしていましたが、それが最善の選択肢になるようです。 StringやListなどのライブラリでユーティリティメソッドを作成する場合は、サブクラスを作成せずに、最良の方法はメタプログラミングとすることです。インポート可能なString.metaClass。*メソッドのライブラリを作成することは可能ですか? 乾杯 – rhysvo

関連する問題