Java generische Feld Erklärung

In eine Klasse ohne generische Typen möchte ich erklären, eine eher komplexe generische Feld ähnlich wie diese:

public class Client {
    private Map<Class<T extends Serializable>, List<Consumer<S extends T>>> classToConsumerTry1;

    private <T extends Serializable, S extends T> Map<Class<T>, List<Consumer<S>>> classToConsumerTry2;
}

promblem ist der java-compiler lässt mich nicht 🙂

Also meine Frage ist wie kann ich richtig einführen, T und S, ohne Zugabe von Typen in meine Klasse Client.

Mein Ziel ist es, die Durchsetzung der Class ein Subtyp von Serializable und die Consumer als ein Subtyp der Klasse, die Sie gewählt haben Class.

  • Warum wollen Sie nicht erweitern Sie Ihre Klasse Erklärung?
  • Weil mein Map sollten in der Lage sein, die verschiedene Werte für T und S nicht nur diejenigen definiert, die in der Client Erklärung.
  • Wo sind Ihre Anzeigen Mitgliedern initialisiert? In einem Konstruktor? In einigen setter-Methode?
  • Ich weiß nicht wirklich verstehen, Ihre Anforderung - es ist Java-Vorstellung, dass Sie generische Feld-Typen, die auf die Objekterstellung, - was wollen Sie erreichen?
  • Im Empfang Serializables über ein Socket und verarbeiten möchten Sie schön wie diese: classToConsumer.get(serial.getClass()).get(i).accept(serial);
  • Neben den Antworten, die behaupten, Sie können nicht eine Allgemeine Feld in eine nicht-generische Klasse S extends T ist illegal und wird nicht kompiliert. Und es macht keinen Sinn, entweder. Warum würden Sie wollen, eine Consumer etwas erweitert, etwas erweitert Serializable? Verwenden Sie einfach T für Ihre Verbraucher und Sie werden getan werden.

InformationsquelleAutor succcubbus | 2015-08-14
Schreibe einen Kommentar