Angenommen, ich habe das folgende Muster oft in meinem Code zu wiederholen:Guice: Wie bind ich Generika für alle Typen?
class A<T> {
@Inject
public A(List<T> list) {
// code
}
}
I alleList<T>
-ArrayList<T>
binden möchten. Ich weiß, ich kann TypeLiteral
s verwenden, um einen expliziten unformatierten Typ zu binden, z. B. List<String>
, aber gibt es das sowieso, um dies für alle Typen zu tun?
Grundsätzlich sollte dieser Code nicht scheitern, weil ich ausdrücklich nicht Liste binden:
injector.getInstance(new Key<A<Integer>>(){});
Nach dem, was ich gefunden und versucht, so weit. Es ist nicht möglich. –
Eine Diskussion über diese Art von "Wildcard" -Bindung finden Sie hier: https://github.com/google/guice/issues/852 –