https://github.com/google/guice/wiki/AssistedInject okudum, ancak AssistedInject argümanlarının değerlerinin nasıl geçeceğini söylemiyor. Injector.getInstance() çağrısı nasıl görünür?Guice'nin AssistedInject'i nasıl kullanılır?
70
A
cevap
127
FactoryModuleBuilder sınıfının javadoc'unu kontrol edin.
AssistedInject
, kodlamayı kendi başına kodlamak yerine Factory
'u dinamik olarak yapılandırmanıza olanak tanır. Bu genellikle, enjekte edilmesi gereken bağımlılıkları olan bir nesne ve nesne oluştururken belirtilmesi gereken bazı parametreler olduğunda yararlıdır. docummentaiton gelen
Örnek
public class RealPayment implements Payment {
@Inject
public RealPayment(
CreditService creditService,
AuthService authService,
@Assisted Date startDate,
@Assisted Money amount) {
...
}
}
örneği yaratma esnasında bir geliştirici tarafından CreditService
ve AuthService
kap tarafından enjekte edilmelidir fakat startDate ve miktarı belirtilmesi gerektiği gör RealPayment olup.
Bunun yerine bir Payment
sen enjekte edilir enjekte RealPayment
public interface PaymentFactory {
Payment create(Date startDate, Money amount);
}
içinde @Assisted
olarak işaretlenir Ve fabrika
PaymentFactory
install(new FactoryModuleBuilder()
.implement(Payment.class, RealPayment.class)
.build(PaymentFactory.class));
Yapılandırılmış fabrika enjekte edilebilir sınıfların
@Inject
PaymentFactory paymentFactory;
ve kodunuzda kullanılan
Payment payment = paymentFactory.create(today, price);
İlgili konular
- 1. Nasıl kullanılır ve nasıl kullanılır zend_pdf bağımsız
- 2. MySQL'de değişkenler nasıl kullanılır ve nasıl kullanılır?
- 3. ActivityNotFoundException nasıl kullanılır?
- 4. addEventListener nasıl kullanılır
- 5. TLBIMP.EXE nasıl kullanılır?
- 6. VN.NET'te IsNullOrEmpty nasıl kullanılır?
- 7. Mongoose findOne nasıl kullanılır
- 8. LibUUID nasıl edinilir/kullanılır?
- 9. Symfony'de Oturumlar nasıl kullanılır?
- 10. DataGridViewCell'de KeyEvents nasıl kullanılır?
- 11. SQLite'de FTS3 nasıl kullanılır
- 12. Özel ClassLoader nasıl kullanılır?
- 13. TextSwitcher Nasıl Kullanılır Android
- 14. dispatch_async_f nasıl kullanılır?
- 15. HtmlHelper.BeginForm() nasıl kullanılır? Tamam
- 16. Denetleyici magentoda nasıl kullanılır?
- 17. Nasıl phantomjs kullanılır?
- 18. DTE, PowerShell'de nasıl kullanılır?
- 19. Enum nasıl kullanılır?
- 20. Java'da NullPointerException nasıl kullanılır
- 21. Düğüm-qunit nasıl kullanılır?
- 22. Birisi Resources.getFraction() nasıl kullanılır?
- 23. Scipy Normaltest nasıl kullanılır?
- 24. XQUERY aslında nasıl kullanılır?
- 25. Linux'ta cbp2make nasıl kullanılır?
- 26. Hero çerçevesi nasıl kullanılır?
- 27. Özel Kütüphane Nasıl Kullanılır?
- 28. Nix'in ioctl'i nasıl kullanılır?
- 29. Fputcsv'de foreach nasıl kullanılır?
- 30. Akka.NET'de TestKit nasıl kullanılır
ilgili aşağıdaki cevaplar yine aynı tip birden çok kez kullanıldığı durumları kapsayan değildir. https://stackoverflow.com/questions/23553865/using-assisted-inject-with-multiple-params-of-same-type-named-params – Alex