2010-07-29 7 views
8

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

3

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).

+0

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

+1

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

+0

Das Hinzufügen von Schließungen zu Java ist wie das Hinzufügen eines Lenkrads, weil die Leute ihren Pferdewagen leicht drehen wollten. –

2

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).

1

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

geschrieben

http://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.

+0

+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