Ich weiß, diese Frage wird wahrscheinlich mehr Diskussion als konkrete Antworten provozieren (was ich weiß es nicht vorzuziehen ist). Aber mit der kürzlichen Übernahme durch Oracle fragte ich mich, ob es irgendwas gibt, dass Java (eines Tages) verdinglichte Generika bekommen könnte? Ich habe gehört, dass Oracle Java einen kleinen Schub geben will, und ich kann mir keinen besseren Weg vorstellen.Irgendein Wort zu vergifteten Generika in Java?
Antwort
Es gibt einen guten Artikel über die Diskussion der verdinglichten Generika, here, dass Sie in Bezug auf Java lesen sollte. Im Wesentlichen werden einige der Fallstricke skizziert, die mit der Einführung einer solchen Änderung auftreten könnten. Es ist ziemlich brutal für Rückwärtskompatibilität, wenn man darüber nachdenkt. Nahm es auf Hacker News, wenn Sie sich fragen, woher es kam.
dankbar sein, dass es ist die Rede von adding closures zu Java. Nicht mehr mit nur Sachen wie Functional Java und ihresgleichen (nicht, dass diese schlecht waren, im Gegenteil).
Ich weiß nicht über die Zukunft jenseits Java 7, aber es sieht aus wie Reified Generics wird nicht sein in Java 7 (und wenn Oracle Java ein wenig Boost geben möchte, sollten sie mit der Veröffentlichung von Java 7 beginnen).
Im Gegensatz zu dem, was fast jeder glauben, verdinglicht Generics in Java möglich ist, was bedeutet, dass Typ Löschung vermieden werden kann. Eigentlich ist es ein Trick oder reine dunkle Magie, wenn du willst.
Ich habe einen Artikel zu diesem Thema bei
geschriebenhttp://rgomes-info.blogspot.co.uk/2013/12/using-typetokens-to-retrieve-generic.html
Am Ende des Artikels dort auf Vor- und Nachteilen dieses Tricks ein Abschnitt ist. Eigentlich wäre es richtig, wenn man "richtige" generische Generics in Java hätte und keinen Trick wie diesen ... aber das ist leider nicht der Fall.
+1 wegen des interessanten Artikels, aber es gibt eine ganze Klasse von Dingen, die du mit verdinglichten Generika machen könntest, die du nicht einfach dadurch erhältst, dass du den Typ herumkommst. Wahre verdinglichte Generika sind mit ein bisschen Code-Generierung Magie möglich, und da asm wie die coolste Sache aller Zeiten ist, kann ich nicht erklären, warum die meisten Leute es nicht versuchen. – CurtainDog
- 1. Higher-kinded Generika in Java
- 2. mit Java Generika in Schnittstellen
- 3. wie man irgendein Wort im gesamten Ansichtsordner in mvc findet
- 4. Java-Reflektion für Generika
- 5. Java-Generika und typecasting
- 6. Standardlistenmodell und Generika JAVA
- 7. Java: Experimentieren mit Generika
- 8. Shop Klasse Generika in Feld in Java
- 9. Infer Generika mit Schnittstelle - java
- 10. Was Java-Platzhalter in C# Generika entspricht
- 11. Ein seltsamer Fehler in Java Generika
- 12. Lambdas und Generika in Java 8
- 13. Unterschied zwischen diesen ‚Generika‘ Syntaxen in Java
- 14. Typ Sicherheit mit Generika in Java
- 15. Vermeiden Generika in Java alle ClassCastExceptins?
- 16. Konvertieren IQueryable Generika zu JSON
- 17. Irgendein Java "API", um Probe XML von XSD zu erzeugen?
- 18. Wechsel zu Generika.
- 19. Irgendein gutes Java Swing Timeline Widget?
- 20. Java versucht, mit Generika und anderen Methoden zu überlasten
- 21. Java: Wann Generika-Methode zu verwenden und wann explizite Methode
- 22. Java-Grundlagen über Generika und Reflexion
- 23. Wie diese Verwendung von Java Generika
- 24. Java - Generika & Wildcards & Schnittstelle versus Implementierung
- 25. Java Raw Art und Generika Interaktion
- 26. Android, Java - Korrigieren Sie ein OCR-ed-Wort zu einem gültigen englischen Wörterbuch-Wort in Echtzeit
- 27. Java-Generika und die addAll-Methode
- 28. Java Generika doppelt verknüpfte Liste Swap
- 29. Java - Umgang mit Generika mit Vererbung
- 30. Java Generika - ein generisches zum anderen Casting
Seufz ... Es ist eine gute Sache, Sun/Oracle dieser Nation zu bauen Autobahnen nicht zuständig sind. Sie würden eine Pferde-und-Buggy-Spur auf Kosten einer Expressspur beauftragen. (Sorry - ich weiß, es ist nicht deine Schuld :-P.) – nonoitall
Um eine Vorstellung von Douglas Adams zu stehlen: Hinzufügen von Schließungen zu Java ist wie ein Rad zu malen, um es schneller zu gehen. – CurtainDog
Das Hinzufügen von Schließungen zu Java ist wie das Hinzufügen eines Lenkrads, weil die Leute ihren Pferdewagen leicht drehen wollten. –