プラグインのサービスに依存するサービスをリファクタリングしようとしています。
元のサービスは正常に動作しますが、サービスの一部を移動して別のクラスに配置すると、何らかの理由でプラグイン サービス インスタンスが設定されません。
オリジナルサービス
package myPackage
class MyService {
def pluginService
def myMethod(args){
def methodVar = pluginService.pluginMethod()
// Do stuff with methodVar
return methodVar
}
...
def myVar = myMethod(args)
...
}
メソッドをGroovyクラスに移動したので、サービスで参照して、持っているモノリシックファイルを分割できます
新しいクラスファイル
package myPackage
class MyClass {
def pluginService
def myMethod(args){
def methodVar = pluginService.pluginMethod()
// Do stuff with methodVar
return methodVar
}
}
変更されたサービス
package myPackage
class MyService {
def myClass
...
def myVar = myClass.myMethod(args)
...
}
def methodVar = pluginService.pluginMethod()
実行時にこれを行うと、MyClass ファイルの行に「null で pluginMethod を呼び出せません」というメッセージが表示されます。nullエラーを削除したクラスファイルに追加import PluginPackage.PluginService
しましたが、「nullでpluginMethodFromOtherPluginSerivceFromSamePluginを呼び出せません」というエラーが表示されます。
コードをサービスから移動してクラス ファイルに配置したときに、何かを宣言するのを忘れましたか?
私はウェブを検索してきましたが、この問題の解決策が見つからないようです。
どんな助けでも大歓迎です。