Voglio creare una classe che accetta due parametri. Uno dovrebbe essere digitato semplicemente come T. L'altro dovrebbe essere digitato come qualcosa che estende sia T che SomeInterface<T>
. Quando tento questo conEstensione di T e SomeInterface <T> in Java
public class SomeClass<T, S extends SomeInterface<T> & T>
poi Java si lamenta con
"Il tipo T non è un'interfaccia, ma non può essere specificato come parametro limitata"
e se invece tento di creare un interfaccia per S con
public interface TandSomeInterface<T> extends SomeInterface<T>, T
poi Java si lamenta con
"Impossibile riferirsi al parametro tipo T come supertipo"
C'è un modo per farlo in Java? Penso che puoi farlo in C++ ...?
Si noti che i modelli C++ sono molto più potente di generici Java. Solo perché può essere fatto in C++, non significa che possa essere fatto in Java. –
correlati: http://stackoverflow.com/a/13261667/697449 –