Tôi có ba lớp CircleBuilder
, SquareBuilder
và TriangleBuilder
triển khai giao diện ShapeBuilder
.Cách tốt nhất để chèn danh sách bằng google-guice là gì?
Tôi cần phải khởi tạo FormBuilder
và đáng chú ý là BuilderList
(mở rộng List<ShapeBuilder>
) với một phiên bản của từng lớp bằng google-guice.
Cách tốt nhất là gì?
tôi biết về các phương pháp cung cấp dịch vụ và các công cụ như thế này:
@Provides
FormBuilder provideFormBuilder() {
DatabaseTransactionLog instance = new FormBuilder (<numerous parameters>);
ShapeBuilder builder = null ;
builder = new CircleBuilder(<numerous parameters>) ;
instance.addBuilder(builder) ;
builder = new SquareBuilder(<numerous parameters>) ;
instance.addBuilder(builder) ;
// And so on
return instance;
}
nhưng nó sẽ có nghĩa là tôi phải tạo FormBuilder
bằng tay của tôi mà đánh bại mục đích của việc sử dụng Guice (vì FormBuilder
là yếu tố hàng đầu trong tôi đồ thị đối tượng).
Tôi rất muốn có thể viết một cái gì đó như thế này:
bind(BuilderList.class).to(CircleBuilder.class);
bind(BuilderList.class).to(TriangleBuilder.class);
bind(BuilderList.class).to(SquareBuilder.class);
Bất kỳ ý tưởng?
Lưu ý: multibinding đòi hỏi jar khác -> Guice-multibindings-3.0.jar –