Scalaでassisted injectを使用することは可能です。 Scalaの-Guiceのは、そのためのツールを提供していない場合は、あなただけの直接支援ジェクトAPIを使用することができます。
trait Entity { ... }
class EntityImpl @Inject (
@Assisted assistedDep: AssistedDependency,
normalDep: NormalDependency
) extends Entity { ... }
trait EntityFactory {
def create(assistedDep: AssistedDependency): Entity
}
class YourModule extends AbstractModule with ScalaModule {
def configure {
install(new FactoryModuleBuilder()
.implement(classOf[Entity], classOf[EntityImpl])
.build(classOf[EntityFactory])
)
bind[NormalDependency].to[NormalDependencyImpl]
}
}
真を、それは非常にきれいではないですが、それは仕事が終わっ取得します。
また、guice-3.0.jar
を絶対に削除しないでください。なぜあなたはそれを最初に考えましたか? javax.inject.jar
にはJSR-330注釈が含まれ、guice-3.0.jar
にはGuice自体が含まれ、guice-assistedinject-3.0.jar
には補助注入拡張が含まれます。これらのすべての瓶は、補助注射のサポートでGuiceが必要な場合は重要です。
ありがとうございました! – MaatDeamon
@MaatDeamon、答えがヘルフルなら、それを受け入れるべきです。それがStackoverflowの仕組みです。 –
注入されたクラスを工場支援クラスに変換する場合は、モジュールから旧バインディングを削除することを忘れないようにしてください。 – JMess